我有两个数据库表,称为可交付成果,deliverable_version。
可交付成果有很多Deliverable_Version。
可交付成果具有 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、标题、消息、截止日期、版本、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);
任何帮助,不胜感激。谢谢。
in Accounts module add:
public function deliverable_version(){
return $this->hasMany('Appdeliverable_version');
}
in controller:
enter code here
$deliverables = Accounts::find($owner_account_ID)->deliverables()>with('deliverable_version');
foreach($deliverables as $deliverable){
// last version
$deliverable = $deliverables->deliverable_version->last();
}
in Accounts module add:
public function deliverable_version(){
return $this->hasMany('Appdeliverable_version')->orderBy('update_at');
}
in controller:
$deliverables = Accounts::find($owner_account_ID)->deliverables()>with('deliverable_version');
foreach($deliverables as $deliverable){
// last version
$deliverable = $deliverables->deliverable_version->last();