laravel url 中参数为空如何处理

Ale*_*len 2 php laravel laravel-5 laravel-5.3

我有一个Route-

/first/second/{param}, 'IndexController@index'
Run Code Online (Sandbox Code Playgroud)

并在控制器中

public function index($param)
{
    $param = trim($param);
    if($param == "")
    {
        redirect()->back();
    }
}
Run Code Online (Sandbox Code Playgroud)

我曾尝试处理它但失败了。每当我发送/first/second/if 给出错误时RouteCollection。我怎样才能控制它?

Jom*_*oos 6

请花一些时间阅读一下文档:可选参数

有时,您可能需要指定路由参数,但将该路由参数的存在设置为可选。您可以通过 ?在参数名称后放置一个标记来实现此目的。确保为路由的相应变量指定默认值:

Route::get('user/{name?}', function ($name = null) {
    return $name;
});

Route::get('user/{name?}', function ($name = 'John') {
    return $name;
});
Run Code Online (Sandbox Code Playgroud)

因此,就您而言,路线将是:

/first/second/{param?}, 'IndexController@index'
Run Code Online (Sandbox Code Playgroud)

并在控制器中

public function index($param ='')
Run Code Online (Sandbox Code Playgroud)