Laravel Implicit Controller分页

时间:2016-08-04 22:30:40

标签: laravel-4

我在laravel routes文件中有一个这样定义的路由。

Route::controller('login/home/admin/', 'AdminController');

但似乎laravel分页在方法中不起作用。所以我在其中一种方法中将Route更改为允许这样的page变量。

Route::get('login/home/admin/users/{page}', 'AdminController@getUsers');
Route::controller('login/home/admin/', 'AdminController');

现在问题是login/home/admin/users/2加载但是分页不起作用,如果我尝试这个login/home/admin/users?page=2我被重定向。

修改

我的方法是这样定义的,不起作用。

public function getUsers(){
   var_dump( Input::get('page') ); // Returns NULL
   $users = User::paginate(10);
   ...
   ...
}

并在视野中

...
{{ $users->links() }}
...

此视图会生成分页,但只有第一页有效。第2页和其他页面显示第1页的记录。

我对此表示怀疑,因为Input::get('page')由于某种原因无效。

编辑2

以下路线均不适合我。

Route::get('login/home/admin/users/', 'AdminController@getUsers');
Route::controller('login/home/admin/', 'AdminController');

Route::get('login/home/admin/users/{page}', 'AdminController@getUsers');
Route::controller('login/home/admin/', 'AdminController');

Route::controller('login/home/admin/', 'AdminController');

2 个答案:

答案 0 :(得分:0)

将路线更改为

Route::get('login/home/admin/users/', 'AdminController@getUsers');

Laravel Pagination会自动处理请求中的页面变量 以下是Laravel documentation的摘录:

  

有几种方法可以对项目进行分页。最简单的是使用   查询构建器上的paginate方法或Eloquent查询。该   Laravel提供的paginate方法自动处理   根据当前页面设置适当的限制和偏移量   用户查看。默认情况下,当前页面由   HTTP请求上的?页面查询字符串参数的值。的   当然,这个值是由Laravel自动检测的,也是   自动插入由分页器生成的链接。

答案 1 :(得分:0)

好的,这在htaccess中是愚蠢的,没有让?page = x或任何其他GET变量传递给代码。将我的htaccess与Laravel 4.2的真正htaccess进行比较,结果有所不同。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L]
#RewriteRule ^(.*)$ index.php?/$1 [L]  <-- CULPRIT