Size: a a a

2020 October 01

D

Dymon in Laravel Pro
Arman
Сделал такой метод в контроллере:
private function unsetEmptyFields(array $array, array $fields): array
{
   return Arr::where($array, function ($value, $key) use ($fields) {
       return array_search($key, $fields) === false || $value !== null;
   });
}

$data = $this->unsetEmptyFields($data, ['password']);


т.е. мне нужно удалить из массива некоторые поля, если они null.

По уму думал может валидатор какой есть, что-то вроде exclude_if_null, но похожий вроде не так работает) и должен ли так работать валидатор большой вопрос.
Дальше думал может Request свой сделать и переназначить метод all(), чтоб там исключать. Или свой метод какой-то.. но кажись это в другую сторону.
Поэтому сделал проще с отдельным методом.
Теперь думаю куда его лучше сделать, чтоб можно было пользоваться в других местах; Думаю что в основном в контроллере буду юзать 🤔.
кто нибдуь решал такой вопрос?
если ты хочешь делать это для request тогда можно свой Middleware (как пример App\Http\Middleware\TrimStrings). Или в файл с хелперами https://laravel-news.com/creating-helpers
источник

A

Arman in Laravel Pro
но как мне с контроллера передать какие поля нужно проверять? интересно  было бы если что-то вроде Cast 'ов было
источник

Д

Дмитрий in Laravel Pro
Как правильно делать фильтры?
Я с фронта отправляю на бэк значения и на бэке я создаю Model::query()
И через if проверяю, если есть значение, то добавляю $query->where('column', '<=', $value),
Но если я много значений передам то у меня запрос в Network, висит в pending, как сделать чтобы все четко работало?
Или это из-за XAMPP?
источник

Д

Дмитрий in Laravel Pro
?
источник

A

Arman in Laravel Pro
Дмитрий
Как правильно делать фильтры?
Я с фронта отправляю на бэк значения и на бэке я создаю Model::query()
И через if проверяю, если есть значение, то добавляю $query->where('column', '<=', $value),
Но если я много значений передам то у меня запрос в Network, висит в pending, как сделать чтобы все четко работало?
Или это из-за XAMPP?
записей много в БД? может это не лара весит, а БД?
источник

Д

Дмитрий in Laravel Pro
Даже не висит, а долго выполняется
источник

Д

Дмитрий in Laravel Pro
Arman
записей много в БД? может это не лара весит, а БД?
Тут хз
источник

D

Dymon in Laravel Pro
Arman
но как мне с контроллера передать какие поля нужно проверять? интересно  было бы если что-то вроде Cast 'ов было
если из контролера тогда только кастомная хелпер функция. Если миддлеваре, тогда его вешаешь на роут и добавляешь нужные параметры https://laravel.com/docs/8.x/middleware#middleware-parameters
источник

Д

Дмитрий in Laravel Pro
Если разбить фильтры на несколько контроллеров, лучше будет?
источник

D

Dymon in Laravel Pro
Дмитрий
Если разбить фильтры на несколько контроллеров, лучше будет?
лучше готовый пакет возми, например этот  https://github.com/spatie/laravel-query-builder
источник

Д

Дмитрий in Laravel Pro
чем лучше?
источник

J

JJJ in Laravel Pro
Кто может помочь с psr-4 в  вордпресс плагине?
источник

J

JJJ in Laravel Pro
написал, должно работать, но не работает
источник

D

DK in Laravel Pro
Дмитрий
Если разбить фильтры на несколько контроллеров, лучше будет?
с чего бы?
источник

A

Adel in Laravel Pro
JJJ
Кто может помочь с psr-4 в  вордпресс плагине?
Может тебе в вордпресс чатик?
источник

A

Arman in Laravel Pro
Dymon
если из контролера тогда только кастомная хелпер функция. Если миддлеваре, тогда его вешаешь на роут и добавляешь нужные параметры https://laravel.com/docs/8.x/middleware#middleware-parameters
👍 кажется оно. попробую через Мидл сделать
источник

J

JJJ in Laravel Pro
а ссылку можно?
источник

D

DK in Laravel Pro
JJJ
а ссылку можно?
источник

A

Adel in Laravel Pro
источник

P

Phoenix in Laravel Pro
Дмитрий
Как правильно делать фильтры?
Я с фронта отправляю на бэк значения и на бэке я создаю Model::query()
И через if проверяю, если есть значение, то добавляю $query->where('column', '<=', $value),
Но если я много значений передам то у меня запрос в Network, висит в pending, как сделать чтобы все четко работало?
Или это из-за XAMPP?
Уточни какие именно фильтры делаешь?
Сколько в твоем понимании много параметров?
Сколько записей планируется в базе?
Есть ли запросы к другим таблицам или только по одной фильтруешь?
источник