Size: a a a

2020 November 23

P

Phoenix in Laravel Pro
у тебя атрибуты по которым фильтруешь хранятся в одной таблице?
источник

A

Andrey in Laravel Pro
Phoenix
Такие фильтра собираются как минимум 2умя запросами

1ый запрос получает count для каждого атрибута
2ой запрос получает count для каждого атрибута с учетом примененных фильтров
Потом данные мержатся и

Если не хочешь переделывать дважды сразу делай на elasticsearch
Зачем 1й?
источник

P

Phoenix in Laravel Pro
1ый запрос нужен что бы вывести count для всего списка
источник

A

Andrey in Laravel Pro
А, понял, если по этим же полям есть фильтрация только
источник

P

Phoenix in Laravel Pro
если сделать просто 2ой запрос, то выведутся не все записи
источник

RK

Roman Kolosov in Laravel Pro
в любом случае копеешные операции
источник

Vr

Vuzopedia ru in Laravel Pro
Phoenix
у тебя атрибуты по которым фильтруешь хранятся в одной таблице?
не всегда. периодически приходится другие подключать. я уже где-то год назад сделал доп таблицы, в которых агрегируются как бы нужные поля для фильтров. перелопатил помню весь код, на добавление в админке запись итд. но иногда приходится дополнительные подключать
источник

A

Andrey in Laravel Pro
В моей ситуации просто из финальной уже выборки надо было считать каунты, поэтому в 1 запрос
источник
2020 November 24

Vr

Vuzopedia ru in Laravel Pro
$totals = DB::table('subscribers')
   ->selectRaw('count(*) as total')
   ->selectRaw("count(case when status = 'confirmed' then 1 end) as confirmed")
   ->selectRaw("count(case when status = 'unconfirmed' then 1 end) as unconfirmed")
   ->selectRaw("count(case when status = 'cancelled' then 1 end) as cancelled")
   ->selectRaw("count(case when status = 'bounced' then 1 end) as bounced")
   ->first();

- это тоже для постгреса?
источник

Vr

Vuzopedia ru in Laravel Pro
вроде по гуглу в мускуле встреючатся then
источник

RK

Roman Kolosov in Laravel Pro
Vuzopedia ru
$totals = DB::table('subscribers')
   ->selectRaw('count(*) as total')
   ->selectRaw("count(case when status = 'confirmed' then 1 end) as confirmed")
   ->selectRaw("count(case when status = 'unconfirmed' then 1 end) as unconfirmed")
   ->selectRaw("count(case when status = 'cancelled' then 1 end) as cancelled")
   ->selectRaw("count(case when status = 'bounced' then 1 end) as bounced")
   ->first();

- это тоже для постгреса?
источник

RK

Roman Kolosov in Laravel Pro
оффтоп, почему рекурсивная смена ролей в линуксе может оставлять один файл под другим пользователем?
источник

P

Phoenix in Laravel Pro
Vuzopedia ru
$totals = DB::table('subscribers')
   ->selectRaw('count(*) as total')
   ->selectRaw("count(case when status = 'confirmed' then 1 end) as confirmed")
   ->selectRaw("count(case when status = 'unconfirmed' then 1 end) as unconfirmed")
   ->selectRaw("count(case when status = 'cancelled' then 1 end) as cancelled")
   ->selectRaw("count(case when status = 'bounced' then 1 end) as bounced")
   ->first();

- это тоже для постгреса?
DB::table('property_values')
   ->select([ 'property_id', 'value', DB::raw('count(product_id) as attribute_count') ])
   ->whereIn('property_id', [1,4,5,6,7,8,9,16])
   ->groupBy(['property_id','value'])
   ->get();
источник

P

Phoenix in Laravel Pro
вот по сути запрос который тебе нужен
источник

P

Phoenix in Laravel Pro
далее прикручиваешь все нужные таблицы через join и фильтруешь по нужным параметрам
источник

P

Phoenix in Laravel Pro
и если нужно что бы оставались значения типа

До фильтрации:

Некий атрибут:
- Значение атрибута 1 (10)
- Значение атрибута 2 (15)
- Значение атрибута 3 (5)

Некий другой атрибут:
- Значение атрибута 1 (7)
- Значение атрибута 2 (5)
- Значение атрибута 3 (4)

После фильтрации:

Некий атрибут:
- Значение атрибута 1 (0)
- Значение атрибута 2 (3)
- Значение атрибута 3 (0)

Некий другой атрибут:
- Значение атрибута 1 (7)
- Значение атрибута 2 (5) фильтруем по этому параметру
- Значение атрибута 3 (4)

то это решается через 2 запроса
источник

DT

Dmitry T in Laravel Pro
не подскажите какого красивого способа как отправить 2 json resource на фронт (чтобы они лежали на одном уровне) ?
источник

VK

Vladimir Krygin in Laravel Pro
на уровне чего?
источник

RK

Roman Kolosov in Laravel Pro
Dmitry T
не подскажите какого красивого способа как отправить 2 json resource на фронт (чтобы они лежали на одном уровне) ?
о.О
источник

DT

Dmitry T in Laravel Pro
да я подумал - глупый вопрос
потом замучаюсь во вью стейты раскидывать

2 запроса все таки не страшно
источник