Laravel - 与另一个表

时间:2015-10-04 12:54:19

标签: laravel eloquent

我在UserCredit

之间建立了一对多的雄辩关系

用户

id | name

信用卡

id | recipient | author | amount

,其中

recipientuser.id

authoruser.id

在Laravel中,建立了recipient的关系:

class Credit extends Model {
    public function user() {
        return $this->belongsTo('App\User', 'recipient');
    }
}

但是如何添加author的关系?

我试过了:

class Credit extends Model {
    public function recipient() {
        return $this->belongsTo('App\User', 'recipient');
    }
    public function author() {
        return $this->belongsTo('App\User', 'author');
    }
}

即。我将user()更改为两个函数:recipient()author()

但我收到Trying to get property of non-object,我认为这意味着使用recipient()author(),Eloquent无法将其“绑定”到我的User模型。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

问题是您有一个名为收件人的字段和一个共享相同名称的关系。考虑重命名其中一个,这是因为laravel将使用该字段,因此如果你这样做

$credit->recipient->name 

您无法访问用户表,因为laravel将加载该字段。并且该字段没有名为name的属性。

之前当关系是user()时,它起作用了。因此,请考虑为用户找到合适的名称,例如credit_recipient()