Laravel 5 - 在视图中使用动态属性

Laravel 5 - using dynamic properties in view

我的模型中有一个 dynamic property 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]);

使用eager loading

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