我正在使用带有2个可选参数的路由,我希望可以选择其中任何一个,因为它们用在where子句中。 where子句可用于第一个参数或第二个参数。
我试过了:
Route::get('activityperemployee/employee_id/{employee_id?}/month/{month?}', ['uses'=>'Ajax\ActivityAjaxController@getActivityPerEmployee','as'=>'ajaxactivityperemployee']);
但问题是,如果我没有设置这两个参数,我就无法找到该页面。
答案 0 :(得分:1)
问题是第一个参数{employee_id?}
。你不能以这种方式使用它,因为如果你没有通过任何参数你会得到像这样的网址:
activityperemployee/employee_id//month
找不到您的路线。
我认为你应该至少要求{employee_id}
(没有问号),并且总是传递第一个参数。
答案 1 :(得分:1)
我建议使用get变量。
如果您有多个可选参数
Route::get('test',array('as'=>'test','uses'=>'HomeController@index'));
在你的控制器里面
class HomeController extends BaseController {
public function index()
{
// for example /test/?employee_id=1&month=2
if(Input::has('id'))
echo Input::get('id'); // print 1
if(Input::has('page'))
echo Input::get('page'); // print 2
//...
}
}
希望这适合你!有关更多信息,请访问https://stackoverflow.com/a/23628839/2859139