自定义hasMany Relation Laravel

时间:2016-10-24 17:03:00

标签: php laravel laravel-5 eloquent

public function chats()
{
    return $this->hasMany('App\Chat','sender_id')->orWhere('receiver_id',\Auth::id());
}

我的要求是我想要获取用户发送或接收的消息。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

以下代码可以解决这个问题:

public function chats()
{
  return $this->hasMany('App\Chat','sender_id')->union($this->hasMany('App\Chat','receiver_id'));
}

这将返回一个关系,该关系是2个查询的联合 - 一个获取聊天消息,其中给定用户是发送者,另一个是给定用户是接收者。

您现在可以通过 $ user->聊天来访问用户的聊天内容。

答案 1 :(得分:0)

你非常接近。 f = open("myfile", "rb")接受链式hasMany()where()来电,因此我会像这样进行查询:

orWhere()

正确设置后,您可以使用public function chats() { return $this->hasMany('App\Chat') ->where('sender_id', \Auth::id()) ->orWhere('receiver_id', \Auth::id()); } 访问从OR发送给当前用户的聊天列表。