我想创建一个路线,它需要一个必需的ID,可选的开始和结束日期('Ymd')。如果日期被省略,它们将返回到默认值。(比如说过去30天)并调用一个控制器....比如说'path@index'
Route::get('/path/{id}/{start?}/{end?}', function($id, $start=null, $end=null)
{
if(!$start)
{
//set start
}
if(!$end)
{
//set end
}
// What is the syntax that goes here to call 'path@index' with $id, $start, and $end?
});
7条答案
按热度按时间wgeznvg71#
无法从
Route:::get
闭包调用控制器。use:
并处理控制器函数中的参数:
ubof19bj2#
这帮助我简化了可选路线参数(来自Laravel文档):
有时候,您可能需要指定路由参数,但要使该路由参数的存在是可选的。您可以通过在参数名称后放置?标记来完成此操作。请确保为路由的相应变量提供默认值:
或者,如果您的路由中有控制器呼叫操作,则可以执行以下操作:
我希望这能帮助一些人简化可选参数,就像我一样!
Laravel 5.6路由参数-可选参数
bwntbbo33#
我会用三条途径来处理:
注意顺序-您希望首先检查完整路径。
t1qtbnec4#
在此了解更多详情(Laravel 7):https://laravel.com/docs/7.x/routing#parameters-optional-parameters
chhqkbe15#
您可以从路由闭合调用控制器操作,如下所示:
jvidinwx6#
我所做的是将可选参数设置为query参数,如下所示:
示例URL:第一个月
路线:
Route::get('/getStuff/{date}','Stuff\StuffController@getStuff');
控制器:
flvlnr447#
无需太多更改即可解决您的问题
然后
现在最佳方法是
那么