我有两个表“ purchases”和“ accounts_purchase_history”。购买有很多帐户历史记录。因此,我需要获取所有具有最新历史记录的商品。
到目前为止我做了什么
$purchases = Purchases::with(['accounts_purchase_historie' => function($query){
return $query->orderBy('id','DESC')->first();
}])->orderBy('id','DESC')->where('status','extended')->get();
但是此查询仅获取第一个购买历史记录,我该如何解决?
最佳答案
您可以使用HasOne
关系:
public function latest_history() {
return $this->hasOne(...)->orderBy('id','DESC');
}
$purchases = Purchases::with('latest_history')
->orderBy('id','DESC')
->where('status','extended')
->get();
foreach($purchases as $purchase) {
$purchase->latest_history
}
但是,这仍将在后台从数据库中获取所有历史记录。