Когда Laravel получает запрос, он сначала направляет его через глобальное промежуточное ПО, а затем пытается найти маршрут, соответствующий запросу.Если он найдет соответствующий маршрут, он запустит любое промежуточное ПО, указанное для него в файле маршрутов, конструкторе контроллера и т. Д., Разрешит любые параметры метода для маршрута и затем выполнит метод.Если он не найдет подходящий маршрут, он будет всего лишь 404.
Route::pattern(...)
по существу добавляет глобальное предложение where для этого параметра.
Итак, в вашем случае, если у вас естьRoute
с параметром {uuid}
будет сопоставляться только в том случае, если часть uuid
URI соответствует шаблону, предоставленному Route::pattern
.Поэтому, если вы попытаетесь перейти к URL-адресу с чем-то, что не в правильном формате, он не будет соответствовать запросу к этому маршруту и приведет к 404 (если у вас нет запасного или другого маршрута, который будет соответствовать).
Пример:
Route::pattern('uuid', '[a-f0-9]{8}-?[a-f0-9]{4}-?4[a-f0-9]{3}-?[89ab][a-f0-9]{3}-?[a-f0-9]{12}');
Route::get('test/{uuid}', 'SomeController@method');
Это будет проходить:
example.com/test/cfb81fde-9ce6-4a5e-8ddc-38417ef5425c
Это приведет к 404:
example.com/test/1