我遇到了一个问题,我的Eloquent模型与同一个表有多个关系导致第一个工作但后续关系返回null,尽管存在数据。
created_by
上的关系有效,但completed_by
没有,尽管它引用了相同的数据。
public function completed_by_user()
{
return $this->hasOne('User', 'id', 'completed_by');
}
public function user()
{
return $this->hasOne('User', 'id', 'created_by');
}
以上是我的模型中的关系$object->user
返回一个值,但$object->completed_by_user
没有。
我错过了一些完全愚蠢的东西吗?
谢谢新年快乐:)
答案 0 :(得分:1)
您必须将关系名称从completed_by_user
更改为completedByUser
背后的原因是Laravel将动态属性名称转换为驼峰大小写。
因此,当您尝试使用$user->completed_by_user
时,它会搜索关系函数completedByUser
答案 1 :(得分:0)
你的关系错了,换掉钥匙:
public function completed_by_user()
{
return $this->hasOne('User', 'completed_by', 'id'); // id may be ommited
}
public function user()
{
return $this->hasOne('User', 'created_by', 'id'); // the same here
}
答案 2 :(得分:0)
似乎通过调用
{{ $question->load('completed_by_user') }}
它开始正常工作......