【发布时间】:2019-03-08 03:54:29
【问题描述】:
我想做的是获取所有对话的列表,这些对话只有一个 latestMessage 并返回一个 JSON 输出。
一个对话有许多消息,但只有一条最新消息:
public function latestMessage()
{
return $this->hasOne(Message::class)->latest();
}
用户模式
public function conversations()
{
return $this->belongsToMany('App\Conversation','conversation_participants', 'user_id', 'conversation_id');
}
对话控制器
public function index()
{
$user = Auth::user();
$user_id = $user->id;
$conversations = $user->conversations()->with(['latestMessage'
//Gets conversations that aren't with the user signed in
,'participants' => function ($query) use ($user_id){
$query->where('user_id', '!=' , $user_id);
}])->orderBy('updated_at','desc')->take('20')->get();
return $conversations;
}
【问题讨论】:
标签: laravel eloquent relationship