我有一个 Controller ,它返回票证的 expiration_date
和 status
,引用 user_id
。
在我获取用户注册的所有票证后, Controller 将显示到期时间和状态。像这样的事情:
0
expiration_date "2018-03-03 20:38:32"
status "expired"
1
expiration_date "2018-03-03 20:38:32"
status "expired"
2
expiration_date "2018-03-03 20:38:32"
status "expired"
3
expiration_date "2018-05-03 09:02:06"
status "expired"
4
expiration_date "2019-05-03 09:02:06"
status "available"
5
expiration_date "2019-05-03 10:00:20"
status "available"
我的问题是,我需要对具有相同 expiration_date
和 status
的数据进行分组。因此,我会将数据 0、1、2 以及数据 4 和 5 分组到一个唯一的项目中,并计算项目数量。像这样的事情:
Count: 3
expiration_date "2018-03-03 20:38:32"
status "expired"
Count: 1
expiration_date "2018-05-03 09:02:06"
status "expired"
Count: 2
expiration_date "2019-05-03 10:00:20"
status "available"
那么,我该怎么做呢?我将 Laravel 与 mysql 结合使用,这是我的 Controller 。
ControllerPHP
<?php
namespace App\Http\Controllers;
use DB;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class UsersCreditsController extends Controller
{
public function getTicketsStatusByUserId($userId)
{
$users = DB::select("
SELECT COUNT(user_id)
FROM users_credits
WHERE user_id = $userId
");
foreach ($users as $user) {
$item = DB::select("
SELECT expiration_date, status
FROM users_credits
WHERE user_id = $userId
ORDER BY expiration_date ASC
");
return $item;
}
}
}
最佳答案
尝试像这样使用 Eloquent ;
$users=yourtable::where('user_id',$userId)->where('status','expired')->get();
关于php - 如何在 Laravel 中选择后对结果进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54138170/