我有这样的关系:
public function message()
{
return $this->hasMany('Engine\Message');
}
在我的Conversation
模型。
并为每个谈话,我需要得到最后的消息。
以下是我试过了,但是这将只能得到一个消息第一次谈话,但不会从其他的谈话得到的消息...
$con = Conversation::all();
$con->load(['message' => function ($q) use ( &$mess ) {
$mess = $q->first();
}]);
return $con;
我不瓦纳查询每个记录...任何人都知道如何解决这个问题?
尝试
$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;
作为建议here!
不要使用first()
或get()
在渴望负荷应创建模型的新关系。
该模型会是这个样子?
public function message()
{
return $this->hasOne('Engine\Message');
}
荣誉给“PMALL”