我正在尝试在Laravel模型中创建两个表,用户和消息之间的关系,因为用户可以向另一个用户发送消息,这样我就有两个外键( fromUser_id 和 toUser_id ),如下图所示。
对于第一个关系,我将直接创建一个名为messages的函数
public function messages(){
return $this->hasMany('App\Models\Message', 'fromUser_id');
}
然而,根据Laravel的标准命名,我不知道如何命名第二关系,因为我知道它也应该是消息,这显然会发出错误,因为我们有第一个具有相同名称的函数。
public function messages(){
return $this->hasMany('App\Models\Message', 'toUser_id');
}
请您告诉我该怎么命名以及这将如何影响模型。
答案 0 :(得分:2)
好吧,你不应该使用简单的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');
}