We can validate parameters directly in the route, with “where” parameter. A pretty typical case is to prefix your routes by language locale, like fr/blog
and en/article/333
. How do we ensure that those two first letters are not used for some other than language?
routes/web.php
:
Route::group([ 'prefix' => '{locale}', 'where' => ['locale' => '[a-zA-Z]{2}']], function () { Route::get('/', [HomeController::class, 'index']); Route::get('article/{id}', [ArticleController::class, 'show']);});