首页 > 解决方案 > Laravel - 在同一页面上显示活动和非活动

问题描述

我有一个包含这些字段的表:nameplan_status

plan_status可以是0或。是活动的,是不活动的。我要显示.110|name|active|inactive|

我只能运行显示活动和非活动的查询。

模型:

protected $fillable = [
    'name', 'plan_status'
];

控制器:

$actives = DB::table('users')
    ->select(DB::raw('count(*) as active'))
    ->where('plan_status', 1)

我希望查询显示两个名称,活动和非活动:|name|active|inactive|

标签: laravel

解决方案


这是一个查询,它将为您提供您想要的确切结果

$actives = DB::table('users')
                     ->selectRaw('
                            name,  
                            IF((plan_status = 1), "Yes", "No") as active, 
                            IF((plan_status = 0), "Yes", "No") as inactive,
                            IF((plan_status = 2), "Yes", "No") as undefined
                     ')
                     ->get()

试试这个并检查。我认为这将解决您的问题。

已编辑

明智地计算状态

$actives = DB::table('users')
                         ->selectRaw('
                                name,  
                                IF((plan_status = 1), COUNT(*), "0") as active, 
                                IF((plan_status = 0), COUNT(*), "0") as inactive,
                                IF((plan_status = 2), COUNT(*), "0") as undefined
                         ')
                         ->groupBy('plan_status')
                         ->get()

像这样

在此处输入图像描述

尝试这两种解决方案。


推荐阅读