Anton
ты уверен что card?
adikalon
да, код не мой так что что есть
Anton
ну и проблема в чем - ты можешь сообщить в первом случае?
adikalon
есть вот такой запрос
$lots = Lots::where('card_id', '<>', 0);
Maksim (Ellrion)
adikalon
поле card_id свяано с id в таблице card
Anton
ну вот выше у тебя правильный запрос вроде как описан
Anton
в ним какие проблемы?
adikalon
Method paginate does not exist
adikalon
там ниже пагинация применяется
adikalon
$lots = $lots->paginate(10);
Anton
ну так надо сразу описывать в чем проблемы, прежде чем спрашивать в чем ошибка 🙂.
adikalon
Anton
сначала paginate, а потом get
Maksim (Ellrion)
не делать get?
adikalon
ща попробую
Maksim (Ellrion)
get вообще при пагинэйт не нужен. это концевые методы билдера оба
Anton
$lots = Lots::where('card_id', '<>', 0); - вот тут у тебя Builder, а вот тут $lots = DB::table('lots')
->where('lots.card_id', '<>', 0)
->join('card', 'lots.card_id', '=', 'card.id')
->orderBy('card.date_app_start', 'asc')
->get(); - коллекция
Anton
разные объекты
adikalon
чет вообще ниче не выводит но страницы пагинации есть
adikalon
Maksim (Ellrion)
Maksim (Ellrion)
мы пошли по кругу)
adikalon
оно по другому чтото вовращает
adikalon
никто ниче не скажет?
Anton
как ты делаешь paginate на простой where запрос?
Anton
покажи код
Anton
вот после этого $lots = Lots::where('card_id', '<>', 0); - что ты еще делаешь чтобы вывести?
adikalon
$lots = Lots::where('card_id', '<>', 0);
.......
$lots = $lots->paginate(10);
adikalon
да там кода на 400 строк
adikalon
никто ниче не ответит? Ато я собрался уже писать заказчику что обосрался(
Anton
то есть когда ты делаешь $lots = Lots::where('card_id', '<>', 0);
и потом $lots = $lots->paginate(10); - все работает
Anton
а когда
Anton
$lots = DB::table('lots')
->where('lots.card_id', '<>', 0)
->join('card', 'lots.card_id', '=', 'card.id')
->orderBy('card.date_app_start', 'asc');
Anton
и потом $lots = $lots->paginate(10); - не работает?
adikalon
adikalon
точнее оно ошибок не кидает. отображаются станицы пагинации, но само содежание - нет
Anton
ну так ты бе подебажил что передаешь, выглядит все как ок
adikalon
коллекция пустая
Antonio
RefreshDatabase в тестах по какому принципу работает? тупо дропает базу?
Antonio
Maksim (Ellrion)
adikalon
adikalon
adikalon
а это первый вариант
Maksim (Ellrion)
а это первый вариант
значит проблема в тех 400 строках которые у тебя между кодом которые ты нам показал и paginate
Maksim (Ellrion)
потому что total и last page корректно вычисляются в обоих случаях
adikalon
adikalon
adikalon
34 строка - $lots = Lots::where('card_id', '<>', 0);
281 - $lots = $lots->paginate(10);
adikalon
меньше чем 400)
adikalon
что не так?
adikalon
сложная шутка
adikalon
м?
adikalon
это не мой код, траль мамкин. Зачем ты мне пишешь это?
Anton
$lots = DB::table('lots')
->where('lots.card_id', '<>', 0)
->join('card', 'lots.card_id', '=', 'card.id')
->orderBy('card.date_app_start', 'asc')
->get();
Anton
вот это что-то выводит?
Anton
А то у тебя там join и он может просто у тебя записей в card нету?
Anton
хотя вроде total не пустой
Maksim (Ellrion)
писец там 20 $lots->wherehas('card' вы отбитые
Maksim (Ellrion)
ты видел запрос при всех настройках фильра какой выходит?)
adikalon
Anton
до paginate $lots->toSql();
Anton
выведи
Maksim (Ellrion)
только перед этим накликай фильтров. чтобы смачнее было
invariance
https://laravel.com/docs/5.5/broadcasting#driver-prerequisites шота я не понял, как там пушить события
invariance
вроде все про прослушку
invariance
или у меня хуево с английским прост
Maksim (Ellrion)
select * from lots where card_id <> ?
короче ответ простой. у тебя через чисто билдер не работает потому что там вызывается wherehas().
совет по рефакторингу: унеси все выборки доступных значений фильтров (типа $mplaces = Card::groupBy('marketplace')->where('marketplace', '<>', '');) вниз (или вообще в отдельный метод) , и заюзай when метод. что бы весь билдер был флюент
adikalon
Maksim (Ellrion)
для решения своей задачи попробуй начинать запрос не с DB::table('lots') а c Lots::query()
Maksim (Ellrion)
аа сделайте работу за меня но учиться я не хочу. с этого надо начинать. тут я пас тогда
adikalon
лол)