Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.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
Laravel通过列用户id获取所有对话,每个对话都应获取所有消息_Laravel - Fatal编程技术网

Laravel通过列用户id获取所有对话,每个对话都应获取所有消息

Laravel通过列用户id获取所有对话,每个对话都应获取所有消息,laravel,Laravel,我有一张桌子 对话有很多对话 我有一张信息表 消息表有许多消息 Messages表包含一行,其中表中的每条消息都有一个行对话id 这表示每条消息都属于一个对话 我能用 <?php namespace App; use Illuminate\Database\Eloquent\Model; /** * Get the Messages for the Conversation chat. */ public function messages() { return $th

我有一张桌子 对话有很多对话

我有一张信息表 消息表有许多消息 Messages表包含一行,其中表中的每条消息都有一个行对话id 这表示每条消息都属于一个对话

我能用

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

 /**
 * Get the Messages for the Conversation chat.
 */
public function messages()
{
    return $this->hasMany('App\Message');
}
我想要的是我想要通过列user_id获取所有对话,并且每个对话都应该获取所有消息? 一连串的谈话 如果可能的话,可以这样做

[
  //conversation 0 
  [ 
    [
      id: 1
      message : "Bla bla bla",     
    ],
    [
      id: 2
      message : "Response to Bla bla bla",     
    ],
    [
      id: 3
      message : "Bye",     
    ]  
  ],
  //conversation 1 
  [ 
    [
      id: 1
      message : "Bla bla bla",     
    ] 
  ],
    //conversation 2 
  [ 
    [
      id: 1
      message : "Bla bla bla",     
    ] 
  ],
]

我该怎么做呢?我不知道我该用什么

你可以这样做,比如获得用户的对话:

$conversations = App\Conversation::with('messages')->where('user_id', $id)->get();
其中,
$id
是用户id,
带有('messages')
返回会话消息集合。要访问此功能,您只需执行以下操作:

foreach($conversations as $conversation){
  $conversation->messages;
}

谢谢你,先生,工作得很好。我很乐意从文档中了解这一点,如果你能提供链接,再次感谢你。这里是,这里也是
foreach($conversations as $conversation){
  $conversation->messages;
}