如果 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;