[英]How do you check if a path is valid in Laravel 5?
我正在构建一个简单的功能,您可以在其中将destination
查询参数传递到/login
页面,该参数会导致您重定向到该页面,而不是我设置的默认行为。
目标存储在会话中,然后在以后用于重定向到我的LoginController中。
这是我的片段:
if ($destination = session('login_redirect')) { .
$route = app('router')->getRoutes()->match(app('request')->create($destination));
$destination_route = route($route->getName(), $route->parameters());
}
我只需要在路径有效的情况下进行重定向,然后在决定重定向之前先进行检查。 有效是指Laravel将为其返回200的URL。 现在,当路径有效时,当我调用app('request')->create()
将路径转换为路由时,我(从逻辑上)得到NotFoundHttpException
。
在app\\Exceptions\\Handler.php
中的render()
函数中做一些app\\Exceptions\\Handler.php
的唯一方法是吗? 如果是这样,我不清楚如何通过编程创建请求来区分有效的404(用户页面请求)和异常。
如何检查$ destination变量是否已设置并且不为空,如果是的话,只需重定向到该给定的目标即可。
否则,($ destination是在会话中设置的,但与您应用程序中存在的任何路由都不匹配)抛出一个新异常,并根据需要命名该异常,然后最终在app/Exceptions/handler.php
捕获该异常,或者您只需在else语句中直接重定向到默认路径即可。 代码如下所示:
$destination = session('login_redirect')
if ($destination && $destination != "" )) {
try {
$route = app('router')->getRoutes()->match(app('request')->create($destination));
$destination_route = route($route->getName(), $route->parameters());
}
catch(Exception $e) {
return $e
// OR
throw new Myexception;
}
}
else {
return redirect("foobar");
// OR
throw new MyException;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.