php - 渴望从 Laravel 5.4 中的相关表中的多个值加载第一个项目

标签 php mysql laravel-5 eloquent eager-loading

我有两个表“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
}

但是,这仍然会在后台从数据库中获取所有历史记录。

关于php - 渴望从 Laravel 5.4 中的相关表中的多个值加载第一个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50436496/

相关文章:

javascript - 了解 ajax 在做什么

javascript - 动态 jquery 验证无法正常工作

PHP:已连接到数据库,但 mysql_query 失败

php - 如何计算 CakePHP 3.x 中 page() 使用的 OFFSET 值?

mysql - 为什么无法访问mysql服务?

mysql - 无法从 mysql 中的两个表中删除行

php - Laravel 5 如何在 select 子句中使用 Carbon 转换日期相关列?

laravel - Laravel 模型中的可填写字段太多?

php - 根据 IP 地址和时间戳值重定向用户

php - Laravel 5.2 具有多个参数的路由