具有可变前缀和 where 条件的 Laravel 路由组

Jak*_*uda 4 laravel

我想在 Laravel 中创建一个路由组,并以变量作为前缀。我也需要设定一些条件。怎样做才正确呢?

我正在关注文档: https: //laravel.com/docs/8.x/routing#route-group-prefixes,但只有一般示例。

这段代码应该创建 2 个路由:/{hl}/test-1/{hl}/test-2where{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)');
Run Code Online (Sandbox Code Playgroud)

lag*_*box 5

group调用不会返回任何内容,因此没有任何内容可以链接。where如果您在调用 之前进行调用group,与您调用的方式类似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';
    });
});
Run Code Online (Sandbox Code Playgroud)