Laravel 5.1 Route :: controller带有可选的URL参数?

时间:2020-05-29 09:57:34

标签: php laravel

我的路线中有此代码

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');

3 个答案:

答案 0 :(得分:2)

您可以将任何参数设置为可选参数,只需在参数名称的末尾附加?。简单示例:

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

此外,我注意到您没有在路由定义中调用任何控制器动作。如果您希望此路由导致您的getIndex()方法,请将其更改为:

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

详细了解官方documentation

答案 1 :(得分:0)

尝试一下:

Route::controller('/orders/{from?}/{to?}', 'CartController');
public function getIndex($from = false,$to = false){


}

答案 2 :(得分:0)

您可以这样使用

$orientation = ( $width != $height ? ( $width > $height ? 'landscape' : 'portrait' ) : 'square' );

在您的控制器中

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