使用2个可选参数进行路由,其中​​可以选择任一个

时间:2016-04-26 09:00:40

标签: laravel

我正在使用带有2个可选参数的路由,我希望可以选择其中任何一个,因为它们用在where子句中。 where子句可用于第一个参数或第二个参数。

我试过了:

Route::get('activityperemployee/employee_id/{employee_id?}/month/{month?}', ['uses'=>'Ajax\ActivityAjaxController@getActivityPerEmployee','as'=>'ajaxactivityperemployee']);

但问题是,如果我没有设置这两个参数,我就无法找到该页面。

2 个答案:

答案 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