Тёмный
No video :(

Делаем фильтры правильно на PHP Laravel 

Vladislav Groniuk
Подписаться 5 тыс.
Просмотров 15 тыс.
50% 1

Опубликовано:

 

28 авг 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 61   
@asyrtmach
@asyrtmach 2 года назад
Спасибо, крутая идея! Чтоб использовать множественную фильтрацию как задумывалось типа /?category_id=1,2,3 в классе QueryFilter.php в методе apply() делаем так call_user_func_array([$this, $name], [array_filter($this->paramToArray($value))]); и уже в методе реализации самого фильтра например в методе category_id() меняем where() на whereIn()
@user-zc2gk1il8l
@user-zc2gk1il8l 11 месяцев назад
У меня почему-то только по последнему значение происходит фильтрация, а не по нескольким.
@Amanel666-scald
@Amanel666-scald 3 года назад
Спасибо за видео Очень понятно раньше когда начал изучать Ларавел сильно горел, но с твоими видео Ларавел нравится все больше и больше Спасибо за Уроки
@aleksandrsh3893
@aleksandrsh3893 4 месяца назад
Дякую, цікава інфа
@user-nc3cr6zw2b
@user-nc3cr6zw2b 3 года назад
Очень интересный подход к обучению)) вот код - но говорить о нем я ниче не буду ))
@user-px9ef9rh5x
@user-px9ef9rh5x 5 месяцев назад
спасибо все работает 👍
@Alexandr6564
@Alexandr6564 3 года назад
Ждем еще видео!!! А так клевый способ, спасибо)
@gavrilovsrg
@gavrilovsrg 3 года назад
В следующем видео если можно покажи как реализовать EAV (если не ошибаюсь) в продолжение темы фильтров в Laravel. Чаще в магазинах не однотипные товары.
@-it-kidys
@-it-kidys 3 года назад
Спасибо) было бы полезно про урок, где фильтры с помощью Vuejs
@VladislavGroniuk
@VladislavGroniuk 3 года назад
На вью джс это не сложно делаеться) хотел показать именно логику на бекенде)
@KibokoKwembamba
@KibokoKwembamba 2 года назад
Как всегда супер видос! Помог вспомнить готовое решение для моей задачи! Но для фильтрации, которую ты делаешь есть уже spatie/laravel-query-builder
@dreamypioneer3760
@dreamypioneer3760 2 года назад
Очень годный контент!!!! Только есть один вопрос, в строке "return $this->builder->where('id', $id);" всё легко и просто, а что если у меня у товара может быть много категорий и я использую связь многие ко многим(я думаю ты прекрасно знаешь, что это такое), подскажи пж, как мне выбирать товары, которые подходят под эту категорию. Вызвать связь categories выдаёт ошибку. Не надеюсь, что получу ответ, но попробовать можно. Ещё раз, очень хороший урок.
@maxyc.webber
@maxyc.webber 3 года назад
пока рассказывал допустил кучу ошибок ) но за тему спасибо. вопрос был бы лучше раскрыт, если бы еще добавили валидацию. ибо новичкам сложно будет совместить фильтры и реквесты
@maxyc.webber
@maxyc.webber 3 года назад
так же не раскрыто для чего вам парам ту эррэй
@Pro100PatroN
@Pro100PatroN 2 года назад
Просто супер!
@user-or8jv8tf7o
@user-or8jv8tf7o 6 месяцев назад
Делаю архитектуру проекта на Laravel/ Пока самое внятное видео.
@SergeiKlishin
@SergeiKlishin 3 года назад
Все супер, молодец! Но, в видео ты упомянул ""OLID, но при этом в контролере ProductController у тебя почему-то забираются и категории товаров =D Здесь я бы рекомендовал использовать View Composer, чтобы отображать категории товаров, потому что потенциально у тебя могут добавиться теги, рейтинги, цены, производители и много других фильтров, и очень не правильно все эти фильтры выкидывать из одного контроллера. Уж если упомянул принципы, используй их
@VladislavGroniuk
@VladislavGroniuk 3 года назад
Спасибо большое за крутую инфу откоторой я даже не знал. Я никогда не говорю что я профи, и мне огого есть куда рости. Благодарая таким как ты я взнвю очень много нового! Спасибо)
@timofeysibirskiy443
@timofeysibirskiy443 3 года назад
Очень классный метод. Беру на вооружение. Однако есть небольшие замечания. 1) Папку Filters лучше закидывать в App\Http\, а не в App\. 2) Не ясно зачем нужен метод paramToArray() и $delimeter к нему. Я их вырезал и ничего не пострадало. 3) Нельзя указывать фильтр входным параметром в метод контроллера. Понимаю, что это сделано для простого объяснения, но тут есть новички, которые будут так делать, не понимая что это не правильно. А неправильно это потому, что тогда некуда помещать валидацию. Вернее есть куда - в конструктор фильтра, но в таком случае теряется та самая единственность обязанностей. Получается, что фильтр не только фильтрует, но и валидирует. Тут вижу два варианта - создавать фильтр в теле метода контроллера, либо же создавать его в скопе. Второе спорно.
@user-li8fs9bp1t
@user-li8fs9bp1t 3 года назад
Почему бы не реализовать это все через сервис, например? Зачем вообще контроллер взаимодействует с фильтрами напрямую? Что если эту задачу делегировать одному из методов сервиса,м?
@timofeysibirskiy443
@timofeysibirskiy443 3 года назад
​@@user-li8fs9bp1t Как именно Вы хотите это реализовать через сервис? В чем его суть?
@asyrtmach
@asyrtmach 2 года назад
Пункт 2 просто не дописан, чтоб использовать множественную фильтрацию как задумывалось типа /?category_id=1,2,3 в классе QueryFilter.php в методе apply() делаем так call_user_func_array([$this, $name], [array_filter($this->paramToArray($value))]); и уже в методе реализации самого фильтра например в методе category_id() меняем where() на whereIn()
@Dmitry_RS
@Dmitry_RS 2 года назад
А не подскажите как создать фильтр в теле контроллера? public function __invoke(FilterRequest $request) { $data = $request->validated(); $filter = new ItemFilter($data); Так не получается.... Я недавно стал изучать Laravel, заранее прошу прощения за возможно глупый вопрос...
@timofeysibirskiy443
@timofeysibirskiy443 2 года назад
@@Dmitry_RS а что пишет? Ошибку выдает?
@alexbork8659
@alexbork8659 3 года назад
Супер .........!!!!!!
@user-ec2qm4uw6n
@user-ec2qm4uw6n 3 года назад
Отличное видео! Спасибо! А есть возможность сделать видео по живому поиску без нажатия на кнопку поиска и фильтра?
@andriusregalas4787
@andriusregalas4787 2 года назад
Все хорошо, только код, который в модели пишется в trait надо добавить, так вместо копирования, просто можно будет использовать каждый раз через Use.
@quantum4804
@quantum4804 Год назад
он все условия для выборки которые собираться в этом фильтре помещает в одни скобки после "from table where ( id in 5 or where status = 4 and contry_id =4 )" что приводит к некорректной работе , как сделать так , чтобы каждое условие после череp and помещалось в новые скобки "from table where ( id in 5 or where status = 4 ) and contry_id =4"??
@user-qt9xw1cd5w
@user-qt9xw1cd5w Год назад
Ребят, подскажите, пожалуйста. Выдаёт такую ошибку App\Models\Post::scopeFilter(): Argument #1 ($builder) must be of type PhpParser\Builder, Illuminate\Database\Eloquent\Builder given, called in C:\OSPanel\domains\example-app\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Model.php on line 1628. Уже с ума схожу из-за неё 🥲
@SemyonF89
@SemyonF89 6 месяцев назад
Предположу, что сформированный запрос работает без конкатенации фильтров - верно? если так, понадобится обвязка логики AND
@syracuse4612
@syracuse4612 Год назад
Как сделать фильтр для many to many , когда через отдельную таблица связи идут?
@togrulshahbazov1579
@togrulshahbazov1579 2 года назад
Эслибы не последнее две минуты))) код не сработал вы не заметили исправил но не уверен думаю так должно быть return $this->builder->where(function ($query) use ($search_string){ return $query ->where('name', 'LIKE', '%' . $search_string . '%') ->orWhere('description', 'LIKE', '%' . $search_string . '%'); });
@10ka_fin
@10ka_fin 2 года назад
Спасибо за урок. Может кто подскажет, что делать если в фильтруемой таблице хранится код поставщика, а хочется делать поиск по части его имени? В модели прописана связь belongsTo с таблицей поставщика.
@delfinn
@delfinn 3 года назад
Влад, добрый день! А как вы начинали учить этот фреймворк и какой материал (книга, видеокурс) посоветовали для Laravel-новичков с базовыми знаниями PHP?
@VladislavGroniuk
@VladislavGroniuk 3 года назад
Здравствуйте! Можете начать изучение с моего видко ларавел за час. А дальше пробовать делать что-то самостоятельно. Нужно придумать задачу себе и решать её. Например создание блога с регистрацией и личным квбинетом.
@developerninja619
@developerninja619 2 года назад
@@VladislavGroniuk здравствуйте. Недавно начал изучать Laravel, но немного отталкивает то, что Laravel, насколько я понял, достаточно сильно меняется от версии к версии. Вопрос: так ли критичны изменения? Легко ли адаптироваться к этим изменениям?
@developerninja619
@developerninja619 2 года назад
@@VladislavGroniuk И не знаете ли вы в Yii2 изменения такие же по критичности или меньше/сильнее?
@androideasycoding
@androideasycoding 3 года назад
Было бы круто на чистом php посмотреть с помощью pdo
@user-yc5ys7fn1j
@user-yc5ys7fn1j 3 года назад
Сделай динамические фильтры без кнопки)
@VladislavVitalevich
@VladislavVitalevich 2 года назад
по шаблону пагинации где можно ознакомиться?? подскажите плс ...
@user-ib9py6bv4t
@user-ib9py6bv4t 3 года назад
Как в таком случае привязывать Валидацию через ...Request в параметрах экшена Index?
@esp2644
@esp2644 3 года назад
А отдельное видео по ajax будет?
@MikhailBurlet
@MikhailBurlet 2 года назад
А как быть если фильтры динамические?
@user-rw4nl8qf2g
@user-rw4nl8qf2g 5 месяцев назад
Круто, но можно доработать)))
@santiagozarpado1145
@santiagozarpado1145 3 года назад
где вызываетя функция paramToArray?
@sergiybunin
@sergiybunin 2 года назад
Забавный момент - если не смотреть первые 5 минут, то вы вообще ничего не пропустите)
@fnamelname105
@fnamelname105 2 года назад
как сделать фильтр по дате? отобразить записи в диапазоне дат
@VladislavGroniuk
@VladislavGroniuk 2 года назад
Да)
@santiagozarpado1145
@santiagozarpado1145 3 года назад
array_filter([$value]) это не тоже самое что [$value]?
@asyrtmach
@asyrtmach 2 года назад
тоже самое, array_filter() еще и отфильтрует пустые элементы массива
@trvtrv3172
@trvtrv3172 Год назад
Зачем нужен такой ролик, если ты ничего не поясняешь? Типо челы которые уже знают как это работает сами смогут подставить нужные параметры, а которые не знают им это на№й не нужно. Боже ни одного адкватного блогера по ларавел в ру среде нет
@asadaa3095
@asadaa3095 2 года назад
Пожалуйста сделай тоже telegram bot в laravel
@eugeney627
@eugeney627 3 года назад
Спасибо за видео А где же ссылка на репозиторий ))
@VladislavGroniuk
@VladislavGroniuk 3 года назад
Спасибо) забыл, но уже вставил)
@back_to_life0
@back_to_life0 2 года назад
LIKE %% - мдаааа бля... реально правильно. FULLTEXT есть такое.
@richbich4742
@richbich4742 3 года назад
Автору респект!. Вот есть чуть более подробное видео об этом методе создания фильтров ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-cL1eXKsnRJI.html
@antondavydov3651
@antondavydov3651 3 года назад
Чувак завязывай, это не твое.
@VladislavGroniuk
@VladislavGroniuk 3 года назад
Так и сделаю наверное(
@user-li8fs9bp1t
@user-li8fs9bp1t 3 года назад
Зачем подобные комментарии писать? Кому-то лучше от этого стало?
Далее
Oh No! My Doll Fell In The Dirt🤧💩
00:17
Просмотров 10 млн