我有这样的关系:
public function message()
{
return $this->hasMany('Engine\Message');
}
在我的Conversation
模型中。
我需要获得最后一条消息。
这是我尝试的内容,但这只会收到一条第一次通话的消息,但不会从其他会话中收到消息......
$con = Conversation::all();
$con->load(['message' => function ($q) use ( &$mess ) {
$mess = $q->first();
}]);
return $con;
我不会对每条记录进行查询...任何人都知道如何解决这个问题?
答案 0 :(得分:0)
尝试
$con = Conversation::all();
$con->load(['message' => function ($q) use ( &$mess ) {
$q->orderBy('created_at', 'desc')->take(1);
// or if you don't use timestamps
// $q->orderBy('id', 'desc')->take(1)
}]);
return $con;
答案 1 :(得分:0)
答案 2 :(得分:0)
根据建议here!
在急切加载中不要使用first()
或get()
,您应该在模型中创建新的关系。
模型看起来像这样...
public function message()
{
return $this->hasOne('Engine\Message');
}
对“ pmall”表示敬意