Laravel路由可在2个环境中与子域一起使用

问题描述 投票:0回答:1

我正在编码一个平台以生成子网站。

我有一条这样的路线,在当地工作得很好:

//Website
Route::domain('{slug}.domain.test')->group(function () {
    Route::get('/','WebsitesController@show')->name('web_website_show');
});

我希望能够使其在生产环境(其他领域)中也能正常工作,所以我做到了:

//Website
Route::domain('{slug}.{domain}')->group(function () {
    Route::get('/','WebsitesController@show')->name('web_website_show');
});

在我的模板中:

<a href="{{ route('web_website_show',['slug' => $website->slug, 'domain' => Request::getHost() ]) }}">Website</a>

生成的URL看起来很棒,但是路由不起作用,将我带到主域的父页面。

我做错了什么?

谢谢

laravel routes subdomain
1个回答
0
投票

您可以在环境变量上进行设置。 https://laravel.com/docs/6.x/configuration#environment-variable-types

您可以将想要/需要的任何env变量添加到.env文件,有APP_URL变量,但是您可以添加类似以下内容:

APP_DOMAIN=app.test

用于生产

APP_DOMAIN=yourapp.com

然后在路由文件上使用辅助方法env访问它,您可以省略第二个参数,或者使用它来设置默认值,以防万一您忘记将其放在.env文件中。

Route::domain('{slug}.' . env('APP_DOMAIN', 'default.com'))->group(function () {
    Route::get('/','WebsitesController@show')->name('web_website_show');
});

BTW,这对于使用已命名的路由设置段塞值可能会有所帮助:Setting up named routes within a subdomain group in Laravel 5.7

© www.soinside.com 2019 - 2024. All rights reserved.