在laravel中,如果我想将参数传递给路由文件中的控制器
Route::get('user/sk/{id}' , 'UsersController@findsk');
Run Code Online (Sandbox Code Playgroud)
如果我想传递默认参数:
Route::get('user/{name?}', function ($name = 'John') {
// how do I invoke my controller here?
return $name;
});
Run Code Online (Sandbox Code Playgroud)
我如何合并这两件事?有捷径吗?
Route::get('user/sk/{id}' , 'UsersController@findsk'
// can I add an array of default parameters here?
);
Run Code Online (Sandbox Code Playgroud)
不幸的是,据我所知,没有捷径可走。
注入一个可选参数:
Route::get('user/{name?}', function ($name = 'John') {
$ctrl = new \App\Http\Controllers\UsersController();
return $ctrl->findsk($name);
});
Run Code Online (Sandbox Code Playgroud)
用更多参数注入一个可选参数:
假设您有一个$id参数并且UsersController@findsk接受$idand $name。
Route::get('user/{id}/{name?}', function ($id, $name = 'John') {
$ctrl = new \App\Http\Controllers\UsersController();
return $ctrl->findsk($id, $name);
});
Run Code Online (Sandbox Code Playgroud)
从路由器在控制器中注入一些东西:
假设想要使用一个 url 作为开关。
Route::get('my-special-url', function () {
$ctrl = new \App\Http\Controllers\UsersController();
return $ctrl->findsk(1, 'Paul');
});
Run Code Online (Sandbox Code Playgroud)