Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
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)
Не в сети
Страницы 1