2017-12-18 366 views
0

我試圖在兩個表,用戶和Laravel模型中的消息之間創建關係,因爲用戶可以將消息發送給另一個用戶,以便我有兩個外鍵(fromUser_idtoUser_id),如下圖所示。Laravel模型在兩個表之間創建關係

enter image description here

對於第一種關係是直接的,我將創建一個名爲消息的功能

public function messages(){ 
    return $this->hasMany('App\Models\Message', 'fromUser_id'); 
} 

但是我不知道如何去儘可能我知道它的名字,第二關係應該也是消息,根據Laravel的標準命名,由於我們具有相同名稱的第一個函數,這顯然會發出錯誤。

public function messages(){ 
    return $this->hasMany('App\Models\Message', 'toUser_id'); 
} 

請讓我知道我應該怎樣命名它,以及這將如何影響模型。

+1

只要用漂亮的描述性名稱。沒有任何與標準命名有關的問題。 – Amarnasan

+0

什麼會混淆laravel是從'User_id'或''User_id''而不是函數的名稱,請根據您的名稱命名:)! – Maraboc

+0

@Maraboc當我開始創建控制器時,你認爲'fromUser_id'或'toUser_id'會產生任何問題 –

回答

2

嘛,你不應該使用簡單messages的關係,而是使用receivedMessagessentMessages這樣的:

public function sentMessages() 
{ 
    return $this->hasMany('App\Models\Message', 'fromUser_id'); 
} 

public function receivedMessages() 
{ 
    return $this->hasMany('App\Models\Message', 'toUser_id'); 
} 
+0

我的問題是:將名稱從消息更改爲任何其他名稱混淆了laravel模型或它可以命名爲我想 –

+1

不,你可以使用名稱的關係爲你希望這樣在這裏不會有任何問題。 –

相關問題