у меня есть динамическое свойство user
в моей модели:
class Training extends Model
{
...
public function user()
{
return $this->belongsTo('App\User');
}
}
И я могу легко получить имя пользователя в контроллере, как это:
Training::find(1)->user->name
Но я не знаю, как сделать то же самое в поле зрения. Я попробовал это:
контроллер:
return view('training/single', Training::find(1));
Посмотреть:
{{ $user->name }};
но без успеха я получаю ошибку Undefined variable: user
, Похоже, я не могу получить доступ к динамическому свойству в поле зрения.
Любая идея, как я могу использовать динамическое свойство в представлениях?
Боюсь, это не совсем возможно. Там нет никакого способа установить $this
контекст в вашем представлении к модели. Вы можете преобразовать модель в массив с toArray()
но это будет включать в себя связанную модель, и вам придется получить к нему доступ с $user['name']
,
Я бы лично объявил переменную пользователя явно:
$training = Training::find(1);
return view('training/single', ['training' => $training, 'user' => $training->user]);
использование нетерпеливая загрузка
return view('training/single', Training::with('user')->find(1));