У меня проблема с методом Laravel ->paginate()
. В принципе, у меня есть динамический запрос, который на основе параметров GET
, переданных контроллеру, имеет или не имеет в нем ::where()
. Без ::where()
я могу позвонить ->paginate(100)
и разбить результирующий набор на страницы 100. При попытке сделать то же самое с ::where(...)->paginate(100)
я получаю 0 результатов.Laravel Paginate Не работает с :: where (...)
Сначала я думал, что мой запрос был неправильным, но удаление ->paginate(100)
и замена его ->get()
возвращает ожидаемое количество результатов. Вот полный код:
$search = ((Input::get("search") != "") ? Input::get("search"):"");
$field = ((Input::get("field") != "") ? Input::get("field"):"");
if($search != "" && $field != ""){
$templates = Template::where($field, "LIKE", $search)
->orderBy($sort, $order)
->paginate(100); // Fails (0 Results)
->get(); // Works (3 Results)
} else {
$templates = Template::orderBy($sort, $order)
->paginate(100);
}
Я не знаю, почему ->paginate()
возвращается 0 результатов. Кроме того, dd($templates)
возвращает всю коллекцию object(Illuminate\Pagination\Paginator)
, которая имеет мои результаты, но не доступна. Если вы хотите, чтобы увидеть результат я говорю, бегите dd()
по запросу без ->get(), ->first() or ->paginate()
Попытайтесь получить каждый объект в 'foreach'. Ты это пробовал ?? –
@ArkarAung Да, это не проблема. Он не возвращает никаких результатов, которые I * может * пропустить. –