如果某些条件适用,则删除Laravel URL的一部分
我的网站上有许多使用自定义分页解决方案的路由,如如果某些条件适用,则删除Laravel URL的一部分,laravel,url,routing,laravel-routing,laravel-5.2,Laravel,Url,Routing,Laravel Routing,Laravel 5.2,我的网站上有许多使用自定义分页解决方案的路由,如/categories/{category}/page/{page?}。我目前将每个控制器设置为如下所示: public function index($category, $page = null) { if(!isset($page) || !is_numeric($page) || $page < 1) { return redirect()->route('parent', ['category' =&g
/categories/{category}/page/{page?}
。我目前将每个控制器设置为如下所示:
public function index($category, $page = null) {
if(!isset($page) || !is_numeric($page) || $page < 1) {
return redirect()->route('parent', ['category' => $category]);
}
}
公共函数索引($category,$page=null){
如果(!isset($page)| |!是数字($page)| |$page<1){
return redirect()->route('parent',['category'=>$category]);
}
}
这样可以检查所提供的页码是否存在,是否确实是一个数字,以及是否大于零。如果这些条件中的任何一个为false,它将重定向到父路由,/categories/{category}
问题是,对于这些解决方案中的每一个,它们都要求我以父路由的名称进行重定向。如果我只想切断
/page/
及以后的页面,但保留任何get变量和post变量,我将如何做?如果您试图使用输入重定向回上一页,请使用以下代码
return redirect()->back()->withInput();
在上面的例子中,只有当您从
/categories/{categories}
访问url/categories/{categories}/page/{page?}
时,它才会起作用。我认为您最好的办法是创建另一条类似/categories/{categories}
@lainer的路径。我已经这样做了,这就是我目前正在做的方式。我基本上只是想知道是否有办法在处理路由之前拦截它们,并在那里进行检查和修改,保留get和post变量。有没有办法获取当前URL,从中删除/page/whatever
,然后通过输入重定向到该URL?@FurzeRequest::URL()
将为您提供当前url。您可以使用preg\u replace
删除/page/任何内容