我在User
和Credit
用户
id | name
信用卡
id | recipient | author | amount
,其中
recipient
是user.id
author
是user.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
模型。
我该如何解决这个问题?
答案 0 :(得分:3)
问题是您有一个名为收件人的字段和一个共享相同名称的关系。考虑重命名其中一个,这是因为laravel将使用该字段,因此如果你这样做
$credit->recipient->name
您无法访问用户表,因为laravel将加载该字段。并且该字段没有名为name的属性。
之前当关系是user()时,它起作用了。因此,请考虑为用户找到合适的名称,例如credit_recipient()