2017-12-18 367 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

不,你可以使用名称的关系为你希望这样在这里不会有任何问题。 –

相关问题