我有这个路由设置:
Route::prefix('admin/{storeId}')->group(function ($storeId) {
Route::get('/', 'DashboardController@index');
Route::get('/products', 'ProductsController@index');
Route::get('/orders', 'OrdersController@index');
});
所以如果我使用'action'帮助器生成一个url,那么我不必明确地提供storeId。
{{ action('DashboardController@index') }}
我希望storeId自请求URL自动设置。
也许是这样的。
Route::prefix('admin/{storeId}')->group(function ($storeId) {
Route::get('/', 'DashboardController@index');
Route::get('/products', 'ProductsController@index');
Route::get('/orders', 'OrdersController@index');
})->defaults('storeId', $request->storeId);
答案 0 :(得分:3)
文档提到了默认参数,但是关于route
帮助程序(应该与所有生成助手的url一起使用):
“因此,您可以使用
URL::defaults
方法定义此参数的默认值,该值将始终在当前请求期间应用。您可能希望从路由中间件调用此方法,以便您可以访问到当前的请求““一旦设置了...参数的默认值,就不再需要在通过
route
帮助程序生成URL时传递其值。”
答案 1 :(得分:0)
Laravel完全按照你描述的方式工作。
您可以在控制器方法中访问storeId
class DashboardController extends Controller {
public function index($storeId) {
dd($storeId);
}
}
http://localhost/admin/20
将打印" 20"