Php 风俗有许多关系
我的要求是获取用户发送或接收的消息。我如何才能做到这一点?以下代码应该可以做到这一点:Php 风俗有许多关系,php,laravel,laravel-5,eloquent,Php,Laravel,Laravel 5,Eloquent,我的要求是获取用户发送或接收的消息。我如何才能做到这一点?以下代码应该可以做到这一点: public function chats() { return $this->hasMany('App\Chat','sender_id')->orWhere('receiver_id',\Auth::id()); } 这将返回一个关系,该关系是两个查询的联合,一个是在给定用户是发送者的情况下获取聊天消息,另一个是在给定用户是接收者的情况下获取聊天消息 现在,您可以使用$user->c
public function chats()
{
return $this->hasMany('App\Chat','sender_id')->orWhere('receiver_id',\Auth::id());
}
这将返回一个关系,该关系是两个查询的联合,一个是在给定用户是发送者的情况下获取聊天消息,另一个是在给定用户是接收者的情况下获取聊天消息
现在,您可以使用$user->chats访问用户的聊天记录,您非常接近
hasMany()
接受chainedwhere()
和orWhere()
调用,因此我会这样进行查询:
public function chats()
{
return $this->hasMany('App\Chat','sender_id')->union($this->hasMany('App\Chat','receiver_id'));
}
一旦设置正确,您可以使用
$users->chats
访问当前用户发送的聊天列表。我认为这不起作用。默认情况下,hasMany将尝试以chats.user_id作为默认外键加入。如果您的聊天记录没有用户id字段,它将失败。
public function chats()
{
return $this->hasMany('App\Chat')
->where('sender_id', \Auth::id())
->orWhere('receiver_id', \Auth::id());
}