如果某些条件适用,则删除 Laravel URL 的一部分
Removing part of a Laravel URL if certain conditions apply
我的网站上有许多使用自定义分页解决方案的路由,例如 /categories/{category}/page/{page?}
。我目前将每个控制器设置如下:
public function index($category, $page = null) {
if(!isset($page) || !is_numeric($page) || $page < 1) {
return redirect()->route('parent', ['category' => $category]);
}
}
这具有检查提供的页码是否存在、确实是一个数字以及它是否大于零的预期效果。如果这些条件中的任何一个为假,它将重定向到父路由 /categories/{category}
.
问题是,对于这些解决方案中的每一个,它们都要求我以父路由的名称编写以进行重定向。如果我只想切断 /page/
及以后的 但保留所有 get 变量和 post 变量,我该怎么做?
如果您尝试使用输入重定向回上一页,请使用以下代码。
return redirect()->back()->withInput();
在上述情况下,只有当您从 /categories/{category}
来到 url /categories/{category}/page/{page?}
时,它才会起作用
我的网站上有许多使用自定义分页解决方案的路由,例如 /categories/{category}/page/{page?}
。我目前将每个控制器设置如下:
public function index($category, $page = null) {
if(!isset($page) || !is_numeric($page) || $page < 1) {
return redirect()->route('parent', ['category' => $category]);
}
}
这具有检查提供的页码是否存在、确实是一个数字以及它是否大于零的预期效果。如果这些条件中的任何一个为假,它将重定向到父路由 /categories/{category}
.
问题是,对于这些解决方案中的每一个,它们都要求我以父路由的名称编写以进行重定向。如果我只想切断 /page/
及以后的 但保留所有 get 变量和 post 变量,我该怎么做?
如果您尝试使用输入重定向回上一页,请使用以下代码。
return redirect()->back()->withInput();
在上述情况下,只有当您从 /categories/{category}
/categories/{category}/page/{page?}
时,它才会起作用