我在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');
答案 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