在Laravel中,统计用户并返回状态

时间:2019-01-10 18:27:00

标签: php mysql laravel

我必须创建一条路线,在该路线中需要检查用户的票证数量,其状态和日期。

它的数据库向我返回票证的ID,与票证有关的user_id,票证的状态及其到期日期。

因此,例如,假设用户100在2019年1月10日有2张票证的状态为“到期”,并在12年1月1日还有2张票证的状态为“ not_used” -2019。

所以,我必须返回类似的内容:

User 100
{
    "count": 2,
    "expiration_date": 2019-01-10,
    "status": expirate, 
},
{
    "count": 1,
    "expiration_date": 2019-01-12,
    "status": not_used, 
}

由于我是Laravel的新手,所以我尝试使用它的工具。我的控制器就是这样。

Controller.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use DB;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class UsersCreditsController extends Controller 
{
    public function getUsersCredits()
       {
        $users = DB::select('select user_id from users_credits');
        return view('users_credits',['users'=>$users]);
    }
}

我的想法是制作一个foreach来计算在数据库中注册的每个user_id。然后,根据其状态查找每个ID和组。

使用Laravel是否有更好的方法?

1 个答案:

答案 0 :(得分:2)

是的!有一种雄辩的方法:

$users = DB::table('users')->count();

我建议查看Laravel文档中有关查询内聚合的部分,以获取对此处发生的情况的更深入的解释。

有关MySQL的快速解释,请查看COUNT函数。