如果Lumen中的URL中没有参数,则重定向

时间:2015-05-11 20:28:48

标签: php laravel 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');
}

我在这里做什么工作正常,但是,我不确定是否应用正确的方法,或者可能有另一种方法来实现我的目标?

1 个答案:

答案 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;