我有Route
-
/first/second/{param}, 'IndexController@index'
在控制器中
public function index($param)
{
$param = trim($param);
if($param == "")
{
redirect()->back();
}
}
我试图处理它但失败了。如果我发错/first/second/
,我会发送RouteCollection
。我该如何控制它?
答案 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();
}
}