如何在路线Laravel 5.4中传递多个位置

时间:2017-09-12 10:16:10

标签: laravel

我想在路由中传递两个参数,但它只适用于一个。 以下是我的代码。

Route::group(['domain' => '{subdomain}'.'.example.com'], function() {

    // Here goes all your subdomain handling

    // Then handle subdomain requests that where not found
    Route::get('{slug}', function($subdomain, $slug) {
        return redirect(\URL::to('http://example.com/'.$slug));
    })->where('slug', 'admin')->where('slug', 'distributor');
});

例如:

www.ez.example.com/distributor重定向到www.example.com/distributor

admin无效

它仅适用于经销商。我希望它也适用于管理员,

1 个答案:

答案 0 :(得分:2)

你只是让它在其中一个地方工作的原因是因为where存储在一个数组中并且被传递给它的名称键入(即'slug')所以第二个是覆盖了第1个。

where()上的Route方法采用正则表达式,因此您可以做的是:

Route::get('{slug}', function($subdomain, $slug) {
    return redirect(\URL::to('http://example.com/'.$slug));
})->where('slug', 'admin|distributor');

希望这有帮助!