2015-06-11 13 views
5

Tôi muốn định cấu hình đường dẫn lưu trữ trong Laravel 5.1 bằng tệp .env. bootstrap/app.php của tôi trông như thế này:Đường dẫn lưu trữ được đặt bằng .env trong Laravel 5.1

<?php 
$app = new \Illuminate\Foundation\Application(
    realpath(__DIR__.'/../') 
); 
$app->useStoragePath(getenv('STORAGE_PATH')); 

và dòng tương ứng trong .env tập tin là:

STORAGE_PATH=/var/www/storage 

này không hoạt động. Tôi đã tìm ra thư viện Dotenv được khởi tạo sau bootstrap được xử lý sao cho các biến số .env không có sẵn trong bootstrap.php.

Có nơi nào khác để tôi có thể đặt đường dẫn lưu trữ và các biến số .env có sẵn không?

+1

Có lẽ đây sẽ được giúp đỡ: https://mattstauffer.co/blog/extending-laravels-application - bạn chỉ có thể trao đổi trên các con đường cho 'env (...) '. Chưa thử nghiệm nó, vì vậy không chắc chắn nếu 'env' đã sẵn sàng tại thời điểm đó. –

Trả lời

3

Trong config/filesystems.php bạn có thể đặt đường dẫn lưu trữ của mình. Hãy thử thiết lập đường dẫn lưu trữ của bạn ở đó và xem nó có hoạt động không. Lưu ý rằng ví dụ bên dưới là đề xuất của tôi về cách xem config/filesystems.php của bạn. Đừng bận tâm đến thiết lập s3. Đó là một phần của dự án của tôi.

Hãy nhớ để loại bỏ $app->useStoragePath(getenv('STORAGE_PATH')); từ app.php

return [ 

    'default' => 's3', 

    'cloud' => 's3', 

    'disks' => [ 

     'local' => [ 
      'driver' => 'local', 
      'root' => env('STORAGE_PATH'), 
     ], 

     's3' => [ 
      'driver' => 's3', 
      'key' => env('AWS_KEY'), 
      'secret' => env('AWS_SECRET'), 
      'region' => env('AWS_REGION'), 
      'bucket' => env('AWS_BUCKET'), 
     ], 

     'rackspace' => [ 
      'driver' => 'rackspace', 
      'username' => 'your-username', 
      'key'  => 'your-key', 
      'container' => 'your-container', 
      'endpoint' => 'https://identity.api.rackspacecloud.com/v2.0/', 
      'region' => 'IAD', 
     ], 
    ], 
]; 
+0

Điều này không thay đổi đường dẫn lưu trữ cho các nội dung như phiên/bộ nhớ cache/v.v. dữ liệu mặc dù, tôi không nghĩ? – ceejayoz

+0

@ceejayoz Yup, bạn nói đúng về điều đó. Thiết lập ở trên chỉ các bộ nơi tệp tải lên được lưu trữ, chẳng hạn như .jpg và .mp4. Bạn có thể đặt đường dẫn lưu trữ phiên trong 'config/session.php'. – MartinJH

+0

và bộ nhớ cache trong 'config/cache.php' v.v. :) – MartinJH

Các vấn đề liên quan