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

时间:2015-03-31 14:17:18

标签: php laravel eloquent laravel-5 dynamic-properties

我的模型中有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。所以看起来我无法在视图中访问动态属性。

知道如何在视图中使用动态属性?

2 个答案:

答案 0 :(得分:3)

我担心这不太可能。无法在视图中将$this上下文设置为模型。您可以将模型转换为包含toArray()的数组,但包含相关模型,您必须使用$user['name']访问它。

我个人只是明确声明用户变量:

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

答案 1 :(得分:0)

使用eager loading

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