2015-10-04 95 views
0

我設置UserCreditLaravel - 兩列,在另一個表的關係,以同一列

用戶

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(),雄辯是無法「綁定「到我的User模型。

我該如何解決這個問題?

回答

3

問題是您有一個名爲收件人的字段和一個關係共享相同的名稱。考慮重命名他們這一個是因爲laravel將使用領域,而不是因此,如果你這樣做

$credit->recipient->name 

你不能訪問用戶表,因爲laravel將加載領域。並且該字段沒有名爲的屬性。

早些時候關係是用戶()它的工作。因此,請考慮爲用戶找到合適的姓名,例如credit_recipient()

相關問題