Комментарии:
Спасибо за курс.
ОтветитьСтранно, что у автора сработал метод "public function categoryId"( PostFilter file), т.к. ищется же "category_id" из массива queryParams ... Но в целом методика очень любопытна. Автору респект.
Ответитьраскрой эту тему глубже на более понятном примере
ОтветитьСпасибо за урок! А как быть, если надо отфильтровать по нескольким id одного из параметров?
ОтветитьИ как в LIKE не пропустить SQL инжекцию ?
ОтветитьЧувствую себе ущербным, так как я уже 5-рыз сделал фильтр так же как на уровне в начале и никогда не додумался бы до создания такого фильтра отдельного, но у меня вопрос как сделать ещё проще когда в фильтрах имеется relation до 4-уровней вложений (меня волнует разделение кода на мелкие куски), я сам никогда не додумаюсь если ни кто не подскажет
ОтветитьЗвук в сраці
ОтветитьВ laravel 10, чтобы увидеть результат функции dd($posts); нужно добавить метод get, а именно: $posts = Post::filter($filter)->get(); без данного метода выводится объект builder. Все понятно, если самому изучать каждый метод и смотреть откуда и какие приходят параметры. Хотелось бы посмотреть на реализацию фильтрации на странице с постами, а не только в виде виртуального кода.
Ответитьраскажи больше про этот шаблон где больше выборок
ОтветитьА есть урок где этот фильтр завязывают на кнопки, интерфейс управления? Подскажите пожалуйста номер урока )
ОтветитьЭто услажненная реаелизация мног лишнего . Можно сделать намного проще
ОтветитьСпасибо дружище, помог во многом разобраться.
ОтветитьНе знаю, но у меня фильтр не хочет работать
ОтветитьОбращу ваше внимание на то, что если у вас в правилах валидации есть required, например 'title' => 'required|string' это приведет к ошибке "сервер выполнил переадрисацию слишком много раз" удалите просто required из правила
ОтветитьВидосы огонь. Каждый пересматривал по несколько раз. Для тех кто никогда не сталкивался с ларавелом очень полезно. Но вот откуда и как заполняется AbstractFilter, Filterable, совершенно непонятно. Просто копипаст с видоса.
ОтветитьА зачем тут FilterInterface?? И почему фильтр асбстрактный? Это же можно сделать все в одном классе? Какое практическое применение имеют эти абстракции в конкретно этом проекте?
ОтветитьВсе работает - спасибо! но на этапе добавления самой формы отправки запросов столкнулся с некоторыми нюансами которых жаль что нет в видео - 1 ) Валидация всех данных - если оставлять пустые значение то работает в общем - но если фильтровать только по 1 параметру а указывать валидацию на все поля. Решил этот вопрос так в FilterRequest проверял\добавлял параметры таким способом if (request()->filled('date_to')) { $rules['date_to'] = 'date'; } и так для всех параметров 2). проверка текущего значение в самой форме old() не подходит так как сохраняет значение в сессии - использовал request()->input('date_to', '') 3) момент если есть форма с многими параметрами и отправляем все - получиться строка с пустыми значениям для этого проверял весь $request->all() if (in_array(null, $params)) { $filtered_params = array_filter($params, function ($value) { return !is_null($value); }); return redirect()->route('deposits.index', $filtered_params); } - возможно как-то по другому нужно но пока так
ОтветитьКак сбросить фильтр при перезагрузке страницы?
ОтветитьПривет. Фильтрация получилась не такая гибкая как хотелось бы
Если мы передаем два параметра <title>, то поиск происходит по последнему. Что в этом случае ?
После добавления request в контроллер : "Сайт выполнил переадресацию слишком много раз."
ОтветитьЕсли у кого-то не работал route на /posts после добавления реквеста, проверьте, не стоит ли у вас в валидации 'required|string'. Если убрать реквайред, то всё начинает работать
ОтветитьКрутой урок! Спасибо✊
ОтветитьНу такое, на Yii1,2 это всё реализовано
ОтветитьА как через форму отправить эту имитацию запроса, а не вводить в ручную?
Ответитьбоже, это мне напомнило ужасные коды с ипользованием старых Jquery, как-то всё сложно :c
ОтветитьА зачем каждый раз после альт + джей говорить Женя? В этом тайный смысл какой-то заложен?)
Ответитьневнимательно читал комменты, та же проблема с required
ОтветитьКак быть если нужно отфильтровать по нескольким категориям, а не по одной?
ОтветитьВ функциях title, content
$builder->where('title', 'like', "%{$value}%");
value в двойных кавычках одинарные не работают!
может кто подскажет: не находит трэйт, хотя ошибок VSCode не видит? Все namespace прописаны
если функцию прописываю в Post все работает...
Спасибо за уроки
Ответитьесть пример где нужно получить по условию из связанной таблице?
ОтветитьНемного поправлю на query а наверное понятьнее будет query builder
ОтветитьУ кого будет ошибка ArgumentCountError
указываете метод validate, а нужно validateD!
Спасибо за уроки.
УРОК НАЧИНАЕТСЯ С 10 МИНУТЫ АХХАХА НЕ БЛАГОДАРИТЕ
ОтветитьПодскажите как сделать в фильтре лимит вывода страниц при пагинации ?
ОтветитьБез файлов из описания не получилось бы, всё работает, но есть вопросы:
1) Зачем городить такой колхоз если в 6 строк в целом работали?
2) Если так правильно, почему это не является базовым функционалом Laravel?
3) Поля title, content, etc.. явно упоминались раза 4-5, а вам не кажется что это, говоря мягко, не универсально? Ещё раз, для пагинации прописывать в разных файлах поля по 4-5 раз.. уровень удобства - запредельный.
Спасибо за урок. Слишком поздно заметил ссылку на файлы ) практически все перепечатал, что было в видео. А так как в видосе не было видно функции before - то возникла ошибка. После же обнаружения файлов в ссылке под видео, проблему удалось решить и все заработало. Зря конечно автор не завел git-репку по всем урокам, хорошо хоть файлы есть, а то думал вообще - домузгуй это сам с before будет ) Просто у других уроков ссылки на файл не было, и уже не ожидалась, но теперь буду иметь в виду.
ОтветитьКак я люблю эти фразы в курсе, по типу: "Но это все не эфективно..."
ОтветитьСпасибо за уроки! 👍
А почему не используете для фильтрации when?
ВОГОНЬ, БРАТАН ПІДПИСКА І ЛАЙК.
ОтветитьВОПРОС, пробую ваш шаблон, почему-то не работает если в адресной строке пишу Laravel/posts( что бы вывел всю таблицу), перекидывает на главную, а вот когда пишу Laravel/posts?title=dog&content=dog РАБОТАЕТ( минимум когда два аргумента пишу), если даже только title=dog НЕ РАБОТАЕТ
Ответитьдобрый день! подскажите пожалуйста, если все сделал правильно, но, если задать параметр, например /post?id=1, при попытке его получить выдается пустой массив
ОтветитьЗдравствуйте! Спасибо за материал, интересно, познавательно и по сути👍 если можно поясните пару нюансов:
- для чего создавать интерфейс, сли есть абстрактный класс, который будет корневым так или иначе?
- $filter = app()->make(PostFilter::class, ['queryParams' => $data]); на сколько знаю app->make используется для внедрения зависимотсей из настроек контейнера, но тут это не актуально поскольку параметры передаете как в обычный конструктор - как по мне это лишнее выполнение кода. Это просто к слову, я читал ответ про миграцию решения с момента его появления)
- в классе PostFilter вы зарегистрировали константы, но не использовали их. Правильно ли я понял что они должны быть использованы в колбеках в билбере в поле column? строки 23, 29, 35,
Еще раз спасибо, материал мне понравился!
В трейте Filterable в аргументах передается FilterInterface, и в $filter получаем объект PostFilter. А если этот PostFilter и передавать в аргументе, получаем тот же объект, в чем интересно отличия?
ОтветитьИнтересно, чем отличаются этот способ создания объекта
$filter = app()->make(PostFilter::class, ['queryParams' => $data]);
от этого
$filter = new PostFilter($data);
может в следующих уроках станет понятней
У меня не прилетают гет параметры из урла. Что делать?
ОтветитьНа работе фильтр же в несколько строчек делается) laravel позволяет
Ответить