Laravel模型在两个表之间创建关系
问题描述:
我试图在两个表,用户和Laravel模型中的消息之间创建关系,因为用户可以将消息发送给另一个用户,以便我有两个外键(fromUser_id和toUser_id),如下图所示。Laravel模型在两个表之间创建关系
对于第一种关系是直接的,我将创建一个名为消息的功能
public function messages(){
return $this->hasMany('App\Models\Message', 'fromUser_id');
}
但是我不知道如何去尽可能我知道它的名字,第二关系应该也是消息,根据Laravel的标准命名,由于我们具有相同名称的第一个函数,这显然会发出错误。
public function messages(){
return $this->hasMany('App\Models\Message', 'toUser_id');
}
请让我知道我应该怎样命名它,以及这将如何影响模型。
答
嘛,你不应该使用简单messages
的关系,而是使用receivedMessages
和sentMessages
这样的:
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
不,你可以使用名称的关系为你希望这样在这里不会有任何问题。 –
只要用漂亮的描述性名称。没有任何与标准命名有关的问题。 – Amarnasan
什么会混淆laravel是从'User_id'或''User_id''而不是函数的名称,请根据您的名称命名:)! – Maraboc
@Maraboc当我开始创建控制器时,你认为'fromUser_id'或'toUser_id'会产生任何问题 –