Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 风俗有许多关系_Php_Laravel_Laravel 5_Eloquent - Fatal编程技术网

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()
接受chained
where()
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());
}