2016-12-30 5 views
2

私はprod環境の.envファイルにconfigを設定しました。異なる環境でLaravel5.1のストレージパスを変更する方法は?

STORAGE_PATH=/dev/shm/runtime 

ブートストラップ/ app.phpに次のコードを書き込みます。

if (env('STORAGE_PATH')) { 
    $app->useStoragePath(env('STORAGE_PATH')); 
} 

env('STORAGE_PATH')が空の文字列を返すため、機能しません。 .envファイルが読み込まれていないようです。

誰かが試したアプリ/プロバイダ/ AppServiceProvider.php

public function register() 
{ 
    if (env('STORAGE_PATH')) { 
     $this->app->useStoragePath(env('STORAGE_PATH')); 
     /* or 
     $this->app->bind('path.storage', function() { 
       return env('STORAGE_PATH'); 
     }); 
     */ 
    } 
} 

でこれを行うために提案し、動作しませんでした。

私はこの仕事をするエレガントな方法が必要であると確信しています。

+0

'useStoragePath()'は文字列を入力すると機能しますか? 'dd(env( 'STORAGE_PATH'));'あなたはそれを登録メソッドに入れれば返りますか? –

+0

@Alexey Mezeninブートストラップ/ app.phpで動かすと動作しますが、問題は.envファイルがロードされていないため、設定値をどこに書き込むべきですか? –

+0

'register()'メソッドで文字列を試しましたか? 'dd()'は何を返しますか?この情報がなければ誰もあなたを助けることができません。 register()メソッド内の –

答えて

0

コードをbootstrap/app.phpから削除します。

私の添付画像をチェックアウトしてください。それは5.1と一緒に働いています。

enter image description here

enter image description here

enter image description here

私はちょうどビューファイルでddをプリントアウト。

<div class="title">Laravel 5 {{dd($app->storagePath())}}</div> 
+0

この方法でApplication :: $ storagePathの値を変更しますが、実際のパスは変更されませんでした。 fold storage/famework/views /をチェックすると、新しく作成されたビューキャッシュファイルがその中に残ります。 –

関連する問題