Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 16.08.2013 21:09:07

[L4] Позднее использование paginate

В общем, есть у меня модель Aid, я хочу сделать выборку, а потом использовать paginate:

PHP
$a = Aid::all();

$a = $a->where('received_at', '>', '2013-14-08');

$a->paginate(10);

Но так не пашет, я знаю, что нужно юзать paginator, но можно ли как-то по другому всё сделать, без использования paginator?

Получается только так можно делать:

PHP
$a = Aid::where('received_at', '>', '2013-14-08')->paginate(10);

Не в сети

#2 17.08.2013 08:03:54

Re: [L4] Позднее использование paginate

Нельзя использовать одновременно и all(), и where() — первый метод уже есть «конечная точка» запроса и он получает все данные. А в чём проблема со вторым вариантом? Он самый правильный.

Не в сети

#3 17.08.2013 08:10:38

Re: [L4] Позднее использование paginate

Да я понимаю что он правильный, но у меня конструкция выглядит так:

PHP
            $aids = Aid::with('program', 'ben', 'branch', 'aid_type');
            if (
Input::has('department')) {
                
$programs = Department::find(Input::get('department'))->programs()->lists('id');
                
$aids = $aids->whereIn('program_id', $programs);
            }
            if (
Input::has('program')) {
                
$aids = $aids->where('program_id', '=', Input::get('program'));
            }
            if (
Input::has('aid_type')) {
                
$aids = $aids->where('aid_type', '=', Input::get('aid_type'));
            }

           
$aids->paginate(10);

т.е. у меня не получится в одну строчку всё запихнуть

Изменено newbie (17.08.2013 08:11:18)

Не в сети

#4 17.08.2013 08:51:14

Re: [L4] Позднее использование paginate

Всё верно, только не обязательно присваивать $aids каждый раз — методы where меняют сам объект.

И этот код не работает?

Не в сети

#5 17.08.2013 08:56:57

Re: [L4] Позднее использование paginate

В общем, решил я проблему.

Надо было сделать так:

PHP
$aids = $aids->paginate(10);

И всё заработало.

Изменено newbie (17.08.2013 08:57:41)

Не в сети

Подвал раздела