У меня есть пользовательское регулярное выражение для совпадения правильное имя пользователя:
^(?=.{5,20}$)[a-zA-Z](?:[a-zA-Z0-9_]*[a-zA-Z0-9])?$
См. демо
Здесь вы можете увидеть мой список маршрутов:
Route::middleware(['userActivity'])->group(function () {
Route::group(['prefix' => '{nickname}','where' => ['nickname' => '^(?=.{5,20}$)[a-zA-Z](?:[a-zA-Z0-9_]*[a-zA-Z0-9])?$']], function ($nickname) {
Route::name('user.')->namespace('User')->group(function () {
Route::middleware(['auth', 'company'])->group(function () {
Route::namespace('Vacancy')->group( function () {
Route::prefix('vacancy')->name('vacancy.')->group( function () {
Route::get('/manage', "VacancyController@manage")->name('manage');
Route::post('/save', "VacancyController@save")->name('save');
});
});
});
});
});
});
В этом случае, когда я иду по маршруту user.vacancy.manage
:
http://website.com/user_1544080981/vacancy/manage
Ошибка возврата:
404 Страница не найдена
Когда яизменить мое регулярное выражение на:
^(?=.{5,30}$)[a-zA-Z](?:[a-zA-Z0-9_]*[a-zA-Z0-9])?$
Примечание: Изменено только регулярное выражение минимальная и максимальная длина с {5,20}
до {5,30}
Вообще, когда я вижу, чтобы расстатьсяURL после имени домена url длина == 30
user_1544081143/vacancy/manage
Но регулярное выражение должно работать только для псевдонима пользователя вместо того, чтобы разделить URL без имени домена.Где у меня есть ошибки в моих маршрутах?