【发布时间】:2017-08-22 15:46:28
【问题描述】:
我有两个名为可交付成果和可交付成果版本的数据库表。
Deliverable hasMany Deliverable_Version。
Deliverable有id列,模型有获取最新版本的功能:
public function getRecentVersion()
{
$deliverable_version_max = $this->versions()->max('version');
$deliverable_version = DeliverableVersion::where([
'version'=>$deliverable_version_max,
'deliverable_ID'=>$this->id,
])->first();
return $deliverable_version;
}
Deliverable_version 表有 id、deliverable_ID、title、message、deadline、version、created_at、updated_at。
我将如何执行我可以执行的操作:
获取所有交付物以及与交付物关联的最新版本。
按照deliverable_version表的列(updated_at)对可交付成果进行排序
对结果进行分页?
这是我的尝试,但它不起作用,因为它在我加入表格时选择所有版本,而不仅仅是最近的版本:
$deliverables = Accounts::find($owner_account_ID)->deliverables();
$deliverables = $deliverables->join('deliverable_version', 'deliverable.id', '=', 'deliverable_version.deliverable_ID');
$deliverables = $deliverables->search($search);
$deliverables = $deliverables->orderBy('deliverable_version.updated_at', 'desc');
$deliverables = $deliverables->paginate(4);
感谢任何帮助。谢谢。
【问题讨论】:
-
添加您的模型文件以获得更好的答案。
-
好的,模型文件已经添加完毕。
标签: php laravel laravel-5 eloquent