Laravel по-русски

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

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

#1 14.08.2017 17:35:55

Пагинация и сырой запрос

Laravel 5.3
PHP 7.0
Ubuntu 16.04 LTS
MySQL 5.7.19

День добрый!
Ларавель только начал осваивать и возник вопрос. При простом выводе пагинация работает корректно, но вот как её осуществить когда уже запрос такого вида?

    public function index()
    {
        $emp = DB::select('select e.id, e.fio, e.position_id, e.salary, e.added_on, p.name, p.number, p.parent_id, 
                        (select ps.name from position ps where p.parent_id = ps.number) as parent 
                        from employee e 
                        left join position p on (e.position_id = p.number) 
                        order by e.id asc')->simplePaginate(4);

            return view('work.index', ['emp' => $emp]);
    }

Может кто помочь?

Upd: Пошуршав немного гуглю, нашел такое решение:
Controller:

        use Illuminate\Database\Eloquent\Collection;
        use Illuminate\Pagination\LengthAwarePaginator;
        //....

        $currentPage = LengthAwarePaginator::resolveCurrentPage();
        $col = new Collection($emp1);
        $perPage = 4;
        $currentPageSearchResults = $col->slice(($currentPage - 1) * $perPage, $perPage)->all();
        $emp = new LengthAwarePaginator($currentPageSearchResults, count($col), $perPage);
        $emp->setPath('work');

View:

{{ $emp->render() }}

Изменено HolyFlames (14.08.2017 18:45:12)

Не в сети

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