Laravel 5.2.42. Сделал так: создал свой класс пагинации на основе \Illuminate\Pagination\LengthAwarePaginator и в ней изменил public function url($page) под себя. ``` pageName .$page .$this->buildFragment(); } } ``` А так же в контроллере беру данные о странице и из них строю запросы, а потом передаю в пагинатор, который и создаёт ссылки. ``` public function index(Post $postModel, Request $request, $page=1){ // если нет данных о странице, то по-умолчанию - первая $perpage = 2; // новостей на страницу $total = DB::table('posts')->where('published', '=', '1')->count(); // кол-во новостей if($page > ceil($total/$perpage)) return redirect()->route('posts'); // если страница больше чем последняя, то редиректим $posts = DB::table('posts') ->select('posts.*','users.name as author',DB::raw('GROUP_CONCAT(tags.tag) as tags')) ->leftjoin('post_tag', 'post_tag.post_id', '=', 'posts.id') ->leftjoin('tags', 'tags.id', '=', 'post_tag.tag_id') ->leftJoin('users', 'users.id', '=', 'user_id') ->where('published', '=', '1') ->groupBy('posts.id') ->orderBy('published_at', 'desc')->skip(($page-1)*2)->take(2)->get(); // посты с тегами и авторами if(strpos($request->getPathInfo(),'blog/page')) $pageName=''; else $pageName='blog/page/'; // если не на главной, то не надо добавлять 'blog/page/' $posts=new Paginator($posts, $total, $perpage, $page, ['path'=>'path','pageName'=>$pageName]); ``` Ну и во вьюхе: ``` {{ $posts->render() }} ``` Роуты: ``` Route::get('blog/page/{page}',['as'=>'blog','uses'=>'PostController@index']); Route::get('/',['as'=>'posts','uses'=>'PostController@index']); ``` В итоге у меня получилось что на главной всегда первая страница, а при переходе на другую адрес уже становится site.ru/blog/page/2. Можно убрать blog/ и тогда получится просто site.ru/page/1 По-хорошему может даже надо разделить контроллеры со страницами и бе3. В планах ещё изучить render() и сделать свой. Может я не совсем правильно делаю, но пока только учусь...