【问题标题】:Routing with 2 optional parameters where either one can be chosen带有 2 个可选参数的路由,其中​​任何一个都可以选择
【发布时间】:2016-08-19 23:57:20
【问题描述】:

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

我试过了:

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

但问题是,如果我不设置这两个参数,我将无法再找到该页面。

【问题讨论】:

    标签: laravel


    【解决方案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

    【讨论】:

      【解决方案2】:

      问题出在第一个参数{employee_id?}。您不能以这种方式使用它,因为如果您不传递任何参数,您将获得如下网址:

      activityperemployee/employee_id//month

      找不到你的路线。

      我认为您应该至少要求{employee_id}(不带问号)并始终传递第一个参数。

      【讨论】:

        猜你喜欢
        • 2014-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-03
        • 1970-01-01
        • 2017-03-03
        • 2015-06-12
        相关资源
        最近更新 更多