我想在 Laravel 中创建一个以变量作为前缀的路由组。我也需要设定一些条件。如何正确执行?
我正在关注文档:https://laravel.com/docs/8.x/routing#route-group-prefixes但只有一般的例子。
此代码应创建 2 条路线:/{hl}/test-1
和 /{hl}/test-2
其中 {hl}
限于(en|pl)
,但它给出了一个错误:"Call to a member function where() on null"
Route::prefix('/{hl}')->group(function ($hl) {
Route::get('/test-1', function () {
return 'OK-1';
});
Route::get('/test-2', function () {
return 'OK-2';
});
})->where('hl','(en|pl)');
最佳答案
group
调用不返回任何内容,因此没有可链接的内容。如果您在调用 group
之前进行 where
调用,类似于您调用 prefix
的方式,那么当您调用 group
它将把它级联到组中的路由上:
Route::prefix('{hl}')->where(['h1' => '(en|pl)'])->group(function () {
Route::get('test-1', function () {
return 'OK-1';
});
Route::get('test-2', function () {
return 'OK-2';
});
});
关于具有可变前缀和 where 条件的 Laravel 路由组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68913539/