[Laravel][Routing] 如何使用路由参数将参数传递给控制器
[Laravel][Routing] How to pass param to controller respective with route parameter
我遇到了一个问题,虽然我搜索了很多地方都没有找到答案。所以,我在这里寻求支持。
我想将参数传递给与路由中的参数对应的控制器函数。
请看下面的例子:
我想要这些路由到 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文档你会发现解决方案easily.here就是link。
顺便说一下,你可以像下面这样简单地做
Route::get('/hourly/{hour}', 'Check@getByTime');
Route::get('/daily/{day}', 'Check@getByTime');
Route::get('/weekly/{week}', 'Check@getByTime');
class Check {
function getByTime($time) {}
}
并在 url 中传递参数,如
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]);
}
});
但是你已经在所有路由的顶部添加了它。
我遇到了一个问题,虽然我搜索了很多地方都没有找到答案。所以,我在这里寻求支持。 我想将参数传递给与路由中的参数对应的控制器函数。 请看下面的例子: 我想要这些路由到 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文档你会发现解决方案easily.here就是link。
顺便说一下,你可以像下面这样简单地做
Route::get('/hourly/{hour}', 'Check@getByTime');
Route::get('/daily/{day}', 'Check@getByTime');
Route::get('/weekly/{week}', 'Check@getByTime');
class Check {
function getByTime($time) {}
}
并在 url 中传递参数,如
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]);
}
});
但是你已经在所有路由的顶部添加了它。