Laravel - отображать активные и неактивные на одной странице - PullRequest
0 голосов
/ 23 мая 2019

У меня есть таблица с этими полями: name и plan_status.

plan_status может быть 0 или 1. 1 активно, 0 неактивно. Я хочу отобразить |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|.

Ответы [ 2 ]

2 голосов
/ 23 мая 2019

Вот запрос, который даст вам точный результат, который вы хотите

$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()

как это

enter image description here

Попробуйте оба решения.

0 голосов
/ 23 мая 2019

попробуйте использовать группу по

 DB::table('users')
        ->select('name',
             DB::raw('IF((plan_status = 1), count(*), 0) as active'),
             DB::raw('IF((plan_status = 0), count(*), 0) as inactive'),
         )->groupBy('plan_status')->get()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...