Laravel,ENV来自路线文件的变量

时间:2016-09-04 17:05:54

标签: php laravel

我尝试从routes / web.php文件中访问ENV变量,但它仍然失败。原因是我想为仪表板/客户区域制作特殊路线组。这是我最新的代码;

$dashboard = env('DASHBOARD_DOMAIN', 'localhost');

Route::group(['domain' => 'dashboard.localhost.dev','middleware' => 'auth'], function () {
    Route::get('/', 'DashboardController@index');
});

以上代码是可行的,但我不想像这样对域值进行硬编码,因为如果我使用这种方式,每次将代码上传到生产服务器时我都需要再次更改它们。但是,如果我将$ dashboard作为域值,它根本不起作用。

4 个答案:

答案 0 :(得分:1)

如果您在DASHBOARD_DOMAIN中定义.env,则代码应该可以正常运行。

Route::group([
      'domain' => 'dashboard' . env('DASHBOARD_DOMAIN', 'localhost') . 'dev',
      'middleware' => 'auth'], function () {
    Route::get('/', 'DashboardController@index');
});

答案 1 :(得分:0)

您需要为项目创建.env并在那里设置环境变量。

所以在你的情况下:

' DASHBOARD_DOMAIN =本地主机'

因此,在您的路线文件中,您仍然使用' env()'方法,但现在该值将从.env文件中提取。

如你所知,第二个参数是' env()'是默认值,因为该变量未在别处设置

答案 2 :(得分:0)

routes.php文件中没有env帮助函数。这是不可能的。

答案 3 :(得分:0)

我有同样的问题。但是通过更改功能可以解决。

像这样更改变量。

config('dashboard.domain', 'localhost') 

通过运行

清除缓存
php artisan config:cache

您的代码将是这样。

$dashboard = config('dashboard.domain', 'localhost');

Route::group(['domain' => 'dashboard.localhost.dev','middleware' => 'auth'], function () {
    Route::get('/', 'DashboardController@index');
});