猿问

具有可选 url 参数的 Laravel 5.1 Route::controller?

我在路线中有这段代码


Route::controller('/orders/{from}/{to}', 'CartController');

链接是这样的


localhost/admin/orders/2020-01-01/2020-01-02


这将打开 2 个日期之间的所有记录


但我有另一个类似这样的链接


localhost/admin/orders/4212


在新选项卡上打开特定行


这 2 个链接属于 1 个功能


叫它


 public function getIndex($from,$to){



 }

我可以将此参数设为可选吗?在我的 route.php 中有 1 Route::controller('/orders/{from}/{to}', 'CartController');?


慕莱坞森
浏览 103回答 3
3回答

尚方宝剑之说

您可以将任何参数设置为可选,只需?在参数名称末尾附加即可。简单示例:Route::controller('/orders/{from?}/{to?}', 'CartController');另外,我刚注意到您没有在路由定义中调用任何控制器操作。如果您希望这条路线通向您的 getIndex() 方法,请将其更改为:Route::controller('/orders/{from?}/{to?}', 'CartController@getIndex');

哈士奇WWW

你可以像这样使用Route::controller('/orders/{from}/{to?}', 'CartController');在你的控制器中public function getIndex($from,$to=null){    if($to==null){        //to open specific row on a new tab    }    else{        // Other task    }}

哔哔one

尝试这个:Route::controller('/orders/{from?}/{to?}', 'CartController');public function getIndex($from = false,$to = false){}
随时随地看视频慕课网APP
我要回答