我使用Lumen框架已经有一段时间了,我发现自己遇到了一个经常出现的问题。
在我的示例中,页面 /index/validation/
需要一个参数,此处由 {key}
表示。但是,如果没有参数,请致电 /index/validation/
,我不知道如何找不到页面未找到的例外。
所以,我创建了一个重定向到主页的函数
routes.php文件
$app->get('/index/validation', 'App\Http\Controllers\IndexController@redirectIndex');
$app->get('/index/validation/{key}', 'App\Http\Controllers\IndexController@validation');
的IndexController
public function redirectIndex() {
return redirect('index');
}
我在这里做什么工作正常,但是,我不确定是否应用正确的方法,或者可能有另一种方法来实现我的目标?
答案 0 :(得分:2)
所有未捕获的异常都在App\Exceptions\Handler
内处理。要重定向所有未找到的异常,请将render()
方法更改为:
public function render($request, Exception $e)
{
if($e instanceof NotFoundHttpException){
return redirect('index');
}
return parent::render($request, $e);
}
您还必须使用以下内容导入该课程:
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;