Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Растолкуйте чтоза обратная связь?
как я понял это чтобы получить какие-то данные из таблицы users через модель Phone.php
я сделал так в моделе User.php написал
public function user()
{
print "!!";
return $this->belongsTo('User','id','id');
}
в роуте
Route::get('onetoone82', function()
{
$phone = Phone::find(82)->phone;
var_dump($phone);
$name = Phone::find(82)->name;
var_dump($name);
});
в итоге выводит
string(8) "97896655" NULL
т.е телефон опять видит как при hasOne а данные NAME пустые???!!!
может я не так понял смысл обратной связи?!
Растолкуйте чтоза обратная связь?
как я понял это чтобы получить какие-то данные из таблицы users через модель Phone.phpя сделал так в моделе User.php написал
public function user()
{
print "!!";
return $this->belongsTo('User','id','id');
}в роуте
Route::get('onetoone82', function()
{
$phone = Phone::find(82)->phone;
var_dump($phone);
$name = Phone::find(82)->name;
var_dump($name);
});в итоге выводит
string(8) "97896655" NULL
т.е телефон опять видит как при hasOne а данные NAME пустые???!!!
может я не так понял смысл обратной связи?!
ОПЕЧАТКА - я сделал так в моделе Phone.php написал!!!!!!!!
Каждый пользователь имеет один номер
class User {
function phone()
{
$this->hasOne('Phone');
}
}
Каждый номер принадлежит одному пользователю
class Phone {
function user()
{
$this->belongsTo('User');
}
}
База
users
+ id
+ name
phones
+ id
+ user_id
+ number
Пользователь
$user = User::find(1)
Имя пользователя c id = 1
$user->name
Номер телефона этого пользователя
$user->phone->number
И обратно
$phone = Phone::where('number', '=', '8 800 123 4567')->first()
Имя пользователя, которому принадлежит номер
$phone->user->name
Каждый пользователь имеет один номер
class User { function phone() { $this->hasOne('Phone'); } }
Каждый номер принадлежит одному пользователю
class Phone { function user() { $this->belongsTo('User'); } }
База
users + id + name
phones + id + user_id + number
Пользователь
$user = User::find(1)
Имя пользователя c id = 1$user->name
Номер телефона этого пользователя$user->phone->number
И обратно
$phone = Phone::where('number', '=', '8 800 123 4567')->first()
Имя пользователя, которому принадлежит номер
$phone->user->name
А где я ошибся? Я писал код из документации но почему-то внутрь этой функции не заходит код, я не вижу !! Знаков
public function user()
{
print "!!";
return $this->belongsTo('User','id','id');
}
Все разобрался спасибо!
вместо $user = Phone::find(82)->user; написал $user = Phone::find(82)->phone;
Если не трудно подскажите при связи OneToOne должно быть 2 отдельных запроса Select?
У меня дебагер показывает 2!