如果 Lumen 中 URL 中没有参数则重定向
Redirection if no parameters in the URL in Lumen
我使用 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');
}
我在这里做的很好,但是,我不确定是否应用了正确的方法,或者是否有其他方法可以实现我的目标?
所有未捕获的异常都在 App\Exceptions\Handler
中处理。要重定向所有未找到的异常,请将 render()
方法更改为:
public function render($request, Exception $e)
{
if($e instanceof NotFoundHttpException){
return redirect('index');
}
return parent::render($request, $e);
}
您还必须导入 class:
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
我使用 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');
}
我在这里做的很好,但是,我不确定是否应用了正确的方法,或者是否有其他方法可以实现我的目标?
所有未捕获的异常都在 App\Exceptions\Handler
中处理。要重定向所有未找到的异常,请将 render()
方法更改为:
public function render($request, Exception $e)
{
if($e instanceof NotFoundHttpException){
return redirect('index');
}
return parent::render($request, $e);
}
您还必须导入 class:
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;