Laravel 5.1-BelongsTo关系返回null

Fel*_*sco 4 php oop relationship laravel eloquent

\ App \ User

class User

public function status() {

    return $this->belongsTo('App\UserStatus', 'user_status_id', 'id');
}
Run Code Online (Sandbox Code Playgroud)

\ App \ UserStatus

class UserStatus

protected $fillable = ['id'];

public function user() {

    return $this->hasMany('App\User', 'user_status_id', 'id');
}
Run Code Online (Sandbox Code Playgroud)

我已经$userUser::find()带有某些字段的简单查询中获得了status对象,然后尝试通过用$user->load('status')方法懒加载它来访问该对象。

我正在关注文档,但由于$user->status仍然返回null ,因此似乎毫无用处。

public function foo(User $user) {

    $user->load('status');
    $user->status // returns null
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

---------解决方案---------

实际上,要延迟加载任何关系,必须将外键值存储在模型对象中。

find操作中,我没有查询该user_status_id字段。当我将此字段添加到查询中时,该$user->status语句开始返回UserStatus模型。

我认为这些信息不是写在Laravel文档上,可能很简单,但是花了我一些时间才能弄清楚。

Fel*_*sco 5

实际上,要延迟加载任何关系,必须将外键值存储在模型对象中。

在查找操作中,我没有查询user_status_id字段。当我将此字段添加到查询中时,$ user-> status语句开始返回UserStatus模型。

我认为这些信息不是写在Laravel文档上,可能很简单,但是花了我一些时间才能弄清楚。