Laravel 5 — использование динамических свойств

у меня есть динамическое свойство 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, Похоже, я не могу получить доступ к динамическому свойству в поле зрения.

Любая идея, как я могу использовать динамическое свойство в представлениях?

1

Решение

Боюсь, это не совсем возможно. Там нет никакого способа установить $this контекст в вашем представлении к модели. Вы можете преобразовать модель в массив с toArray() но это будет включать в себя связанную модель, и вам придется получить к нему доступ с $user['name'],

Я бы лично объявил переменную пользователя явно:

$training = Training::find(1);
return view('training/single', ['training' => $training, 'user' => $training->user]);
3

Другие решения

использование нетерпеливая загрузка

return view('training/single', Training::with('user')->find(1));
0

По вопросам рекламы [email protected]