2016-09-04 13 views
1

routes/web.phpファイルからENV変数にアクセスしようとしましたが、失敗し続けます。その理由は、ダッシュボード/クライアントエリアのための特別なルートグループを作成したいのです。ここに私の最新のコードがあります。上記のコードLaravel、ENVルートファイルからの変数

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

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

は仕事ですが、私はこの方法を使用する場合、私は再び毎回私は本番サーバーに私のコードをアップロードし、それらを変更する必要があるので、私は、ハードコードにそのようなドメイン値を望んでいません。しかし、私がドメイン値として$ダッシュボードを置くと、それは単に機能しません。

+0

アプリをLaravel 5.3にアップグレードすると、env関数がroutes.phpファイルを置き換えるweb.phpファイルで動作することをお知らせします。 – Octoxan

答えて

1

DASHBOARD_DOMAIN.envに定義すると、コードは正しく動作するはずです。

Route::group([ 
     'domain' => 'dashboard' . env('DASHBOARD_DOMAIN', 'localhost') . 'dev', 
     'middleware' => 'auth'], function() { 
    Route::get('/', '[email protected]'); 
}); 
+0

既にそれは動作しますが、ちょうどうまく動作しません.ENV( 'DASHBOARD_DOMAIN'、 'localhost')を返すために他のファイルでテストするため、正しい変数を.envに入れて、動作しますが、ルートからは動作しませんファイル –

+0

私はこれがLaravelの最新バージョン5.3で動作することを確認できます。 – Octoxan

+0

これは5.5でも同様ですが、新しい値を設定する場合は 'artisan config:clear'を実行してから' artisan optimize'を実行してください。 –

0

プロジェクトの.envを作成し、その環境変数を設定する必要があります。あなたのケースではそう

「DASHBOARD_DOMAIN = localhost」の

だからあなたのルートファイルで、あなたはまだ「ENV()」メソッドを使用したいが、今価値があなたから引かれます.envファイル。

そして、「ENVは()」その変数が他の場所で

+0

私はすでにそれをしていますが、仕事ではありません。 –

0

のenvヘルパー関数設定されていないときのデフォルトは、ある場合には、第2パラメータはroutes.phpの中で使用できないだけで、あなたが知っているので、ファイル。これは不可能です。

+0

これはLaravel 5.3で利用可能になりました。私は.envファイルからカスタムドメインを取得するためにenv関数を使用しています。 =] – Octoxan

+0

ええと、私はL5.3アプリを試して、 ''ヌル ''を得ました。カスタムの '' env() ''文字列を更新した後、 '' 'php artisan config:cache' ''を実行しました。テストするために、私はこれをweb.php '' 'Route :: get( '/ helper'、function(){ dd(env( 'DOES_HELPER_WORK')); }}に追加しました。 '' '' –

関連する問題