php - 单击第 2 页的链接后,Laravel 分页重定向到主路由
问题描述
我的 Laravel 分页无法正常工作。当我尝试单击 laravel 分页中的第二个链接或另一个链接而不是第一个链接时,它会将我重定向到主页 url (localhost:8000)。
Laravel 分页链接重定向到相同的路由,但使用“page =”参数,但问题是在这条路由上我有带有 if 语句的控制器,它将我重定向到主页。如何将分页结果发送到另一条路由并正确显示每个分页页面而不受控制器的影响。
这是控制器:
$per_page = 5; //default
//Za ispis kategorija i tagova u filteru
$filter_categories = Category::all();
$filter_tags = Tag::all();
if($request->per_page){ $per_page = $request->per_page; }
//Ako ne postoji zahtjev za kategorijama i tagovima
if(!$request->category && !$request->tags) {
//Provjera da li postoji zahtjev za broj jela po stranici
if(only_meals_per_page($request)){
$meals = Meal::paginate($per_page);
return view('index', compact('meals', 'filter_categories', 'filter_tags'));
}
//Ako ne postoji nikakvi zahtjev vrati se na početak
return redirect('/');
//Zahtjev za kategorijom
} else if($request->category && !$request->tags) {
$result = filter_meals_by_category($request->category, $per_page);
//Zahtjev za tagovima
} else if(!$request->category && $request->tags) {
$result = filter_meals_by_tags($request->tags, $per_page);
//Zahtjev za kategorijama i tagovima
} else {
$result = filter_meals_by_categories_and_tags($request->category, $request->tags, $per_page);
}
$meals = $result['meals'];
$message = $result['message'];
Session::flash('message', $message);
return view('index', compact('meals', 'filter_categories', 'filter_tags'));
..和带有分页方法的 $result 数组的示例
$meals = Meal::where('category_id','=', NULL)->paginate($per_page);
我知道问题可能出在第一个 if 语句中,它将我重定向到家,因为请求中不再有类别和标签。
解决方案
在分页链接中附加获取请求的查询字符串时解决的问题:
$meals->appends(request()->input())->links()
推荐阅读
- mongodb - MongoDB Facet 错误管道需要文本分数元数据,但没有可用的文本分数
- angular - Angular 上的 Google 登录 - 未定义 gapi 错误
- javascript - 如何编辑 js 对象值
- excel - 跨选择中心不适用于“较小范围”,而仅适用于“较大范围”
- c# - 使用类属性自定义缓存键以进行后期方法缓存
- python - Django 管理员在使用 get_form() 时缺少添加/编辑按钮
- azure - 巴西葡萄牙语的 Microsoft Azure 语音到文本
- sql - 将连接字符串中的 Provider 更改为 TLS1.2 Compatible 会导致参数因日期时间而失败
- visual-studio-code - VSCode - 黑色 UI/菜单字体
- c++ - 共享队列的线程安全