Здравствуйте. Есть шаблон выводящий продукты, с пагинацией, все работает. Пагинация выводит по 16 элементов. При одной из выборок из базы возвращается 3 элемента. Пагинация перестает работать, но если выводить по 1 или 2, то работает. Кто нибудь с этим сталкавался раньше и как это можно решить?
Станислав Почепко: D' Normalization:
$products_tag_catalog = Product::select('products.*')->paginate(20);// работает и выводит элементы
$products_tag_catalog = Product::select('products.*')->where('category_id','=',1)-> paginate(20);// не выводит
В базе элементы есть точно. Если во втором случае ставлю, например, paginate(2), то все элементы выводятся. Элементов меньше 20, но это же не должно быть причиной.
D' Normalization: Станислав Почепко:
Да и может немного запутал. Во втором случае запрос берет меньше 20 элементов из базы, а всего элементов около 1к.
D' Normalization: я проверял через ->toSql, потом выводил через dd($products_tag_catalog) и там были полученные элементы, но после пагинации dd вывело, что там ничего нет, на представление ничего не доходит.
D' Normalization: Нет, там около десятка страниц выводится по одному шаблону и отличаются лишь данные полученные из бд. Во всех других я получаю больше 20 записей, а здесь 3 ( причем paginate(1) работает, но не то же)
alex--n: А как ты проверял наличие данных, если данные будут получены только после вызова методов all(), get(), first(), paginate() . Вы хотя бы нигде не написали так?
Станислав Почепко: Дело в том, что данные получаются 100%. Проверял всеми доступными методами. Но если ставлю paginate(20) не выводит, а paginate(1) выводит.
alex--n: Странно, что есть проблемы. А вот по поводу фильтрации. Попробуйте whereHas метод. Намного удобней будет. Кончено если у вас связи настроены и есть объекты