gpt4 book ai didi

php - Laravel 在一个查询中选择不同的内容

转载 作者:行者123 更新时间:2023-11-29 16:13:41 25 4
gpt4 key购买 nike

我会尝试描述一下我的情况;我有两个单独的查询如下:

   public function getDriversCount($request) {
return Driver::count();
}

第二个:

public function getDriversCountWithStatus($request) {
return Driver::select('status', DB::raw('count(*) as total'))
->groupBy('status')
->get();
}

现在我们可以看到这两个是两个独立的函数并且用于独立的查询。在第一个中,我对整个 drivers 表记录进行计数,但在第二个中,我根据 status 组进行计数。那么如何通过一个函数和一个查询来达到相同的结果呢?类似的东西:

{
"absolute_total": 21,
"with_status": [
{
"status": 0,
"total": 11
},
{
"status": 1,
"total": 10
}
]
}

这是我通过分别调用这两个函数手动收到的。

最佳答案

您可以执行以下操作,我们在开始时设置一个空数组,因此如果函数返回一个空数组,您可以对此进行进一步检查:

public function getDriversCountAndStatus($request)
{
// Set the array that will be returned
$driversCountWithStatus = [];

// Get the driver count
$driverCount = Driver::count();

// Get the driver status
$driverStatus = Driver::select('status', DB::raw('count(*) as total'))
->groupBy('status')
->get();

// Combine the driver count and status into one array
$driversCountWithStatus = [
"absolute_total" => $driverCount,
"with_status" => $driverStatus;
];

return $driversCountWithStatus;
}

关于php - Laravel 在一个查询中选择不同的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55032967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com