我有两条路线:A/{param}/C
和B/{param}/C
。我还有一个方法控制器:
public function index($param, $param1 = false)
{
//...
}
在A/{param}/C
的情况下,我只传递一个参数 - 一个在URL中指定,并且该函数使用默认值作为第二个参数。在第二条路线的情况下,我想传递true
作为第二个参数。由于未在URL中指定,如何将其传递给函数?
答案 0 :(得分:2)
如果我理解正确,不使用$ _POST,你就无法传递参数而不会出现在URI的某个地方(在设置会话变量之外,我不建议这样做)
另一个选项可能是将其作为查询字符串参数传递。它仍然会在网址中,但不一定会被路由模式所捕获
<强>网址:强>
A/{param}/C
B/{param}/C?param1=true
-
的控制器:强>
public function index($param)
{
$param1 = Request::query('param1'); // if not present false, if present, {value}
}
-
或者,如果您想要一个友好的网址,您可以在第二个参数后面添加一个问号,表示它可能存在,也可能不存在。这将匹配以下两个网址
<强> URL:强>
A/{param}/C
B/{param}/C/true
<强>路线:强>
Route::get('B/{param}/C/{param1?}', 'YourController@index');
<强>控制器:强>
public function index($param, $param1 = false)
{
//
}