我遇到了一个问题,尽管我搜索了很多地方,但找不到答案。所以,我在这里寻求支持。我想将参数传递给与路径中的参数相对应的控制器功能。请参见以下示例:我希望这些路由到Check控制器,功能getByTime($ time)
Route::get('/hourly', 'Check@getByTime');
Route::get('/daily', 'Check@getByTime');
Route::get('/weekly', 'Check@getByTime');
class Check {
function getByTime($time) {}
}
示例条件:
hourly: $time=1
daily: $time=24
weekly: $time = 24*7
我的意思是这样:
Route::get('/hourly', 'Check@getByTime(1)');
Route::get('/daily', 'Check@getByTime(24)');
Route::get('/weekly', 'Check@getByTime(168)');
[请帮助我解决它。对不起,我的解释不好,谢谢您的帮助。
这很简单,如果您查看laravel文档,您将很容易找到解决方案。这里是link。
通过这种方式,您可以像下面这样简单地完成它
Route::get('/hourly/{hour}', 'Check@getByTime');
Route::get('/daily/{day}', 'Check@getByTime');
Route::get('/weekly/{week}', 'Check@getByTime');
class Check {
function getByTime($time) {}
}
并在参数中传递参数,如
http://yourhost/hourly/1
http://yourhost/daily/24
http://yourhost/weekly/168
根据您的要求,您可以尝试以下操作:
Route::get('/hourly', 'Check@getByTime')->defaults('hour', 1);
不知道我是否了解您的确切问题,但这会帮您的忙
Route::get('{slug}', function ($slug){
if ($slug == "hourly") {
App::call('App\Http\Controllers\Check@getByTime', [1]);
} else if ($slug == "daily") {
App::call('App\Http\Controllers\Check@getByTime', [24]);
} else if ($slug == "weekly") {
App::call('App\Http\Controllers\Check@getByTime', [168]);
}
});
但是您已将其添加到所有路线的顶部。