如果参数在url中,如何处理是空laravel

时间:2017-03-02 12:11:13

标签: php laravel laravel-5 laravel-5.3

我有Route -

/first/second/{param}, 'IndexController@index'

在控制器中

public function index($param)
{
    $param = trim($param);
    if($param == "")
    {
        redirect()->back();
    }
}

我试图处理它但失败了。如果我发错/first/second/,我会发送RouteCollection。我该如何控制它?

2 个答案:

答案 0 :(得分:3)

请花些时间阅读文档:Optional Parameters

  

有时您可能需要指定一个路由参数,但要制作   存在该路由参数可选。您可以通过放置一个   ?标记参数名称后面。确保提供路线   相应的变量是默认值:

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

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

因此,在您的情况下,路线将是:

/first/second/{param?}, 'IndexController@index'

在控制器中

public function index($param ='')

答案 1 :(得分:0)

您应该在函数定义中将param实例化为null

public function index($param = null) {
    if (!$param) {
         return redirect()->back();
    }
}