简介:
我有一个带有动态前缀的自定义路由组:
Route::prefix('{nickname}')->group(function () {
Route::get('/', function($nickname) {
return view('profile');
})->where(['nickname' => '[a-z]+']);
Route::get('/edit', function($nickname) {
return view('profile.edit');
})->where(['nickname' => '[a-z]+']);
});
如您所见,在每条路由上,我都会通过正则表达式检查前缀的正确性。
注意::我还使用->where(['nickname' => '[a-z]+'])
来路由组并收到错误消息。
错误消息:
调用成员函数where()为空
问题:
如何只检查一次即可解决问题?
答案 0 :(得分:5)
Route::group
具有attributes
的参数。 where
是可用的准参数之一。
Route::group([
'prefix' => '{nickname}',
'where' => ['nickname' => '[a-z]+']
], function ($nickname) {
Route::get('/', function($nickname) {
return view('profile');
});
Route::get('/edit', function($nickname) {
return view('profile.edit');
});
});
答案 1 :(得分:0)
希望能为您带来帮助
Route::group(['prefix' => '{nickname}','where' => ['nickname' => '[a-z]+']],function ($nickname) {
Route::get('/', function($nickname) {
return view('profile');
});
Route::get('/edit', function($nickname) {
return view('profile.edit');
});
});