【发布时间】:2018-08-11 05:25:23
【问题描述】:
我正在尝试使用 laravel 构建一个聊天应用程序,我有两个表,一个用于 Conversations,另一个用于 Messages,我希望每个都有与最后一条消息的对话。这是我尝试过的查询:
$allConvs = Conversation::with(['messages' => function ($query) {
$query->latest()->first();
}])
->get();
但它只为第一个对话返回最后一条消息,而为其他对话返回 null。还有其他方法吗? 这是我的关系
Conversation.php
public function messages(){
return $this->hasMany('App\Message', 'conversation_id','id')->latest();}
Message.php
public function conversation()
{
return $this->belongsTo('App\Conversation' ,'id', 'conversation_id');
}
【问题讨论】: