与同一表的第二个关系返回null

时间:2014-12-31 12:03:19

标签: laravel laravel-4 eloquent

我遇到了一个问题,我的Eloquent模型与同一个表有多个关系导致第一个工作但后续关系返回null,尽管存在数据。

enter image description here

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没有。

我错过了一些完全愚蠢的东西吗?

谢谢新年快乐:)

3 个答案:

答案 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') }}

它开始正常工作......

相关问题