【发布时间】:2018-05-16 11:32:34
【问题描述】:
我在一个数据库表中保存了多个 FTP 帐户,并希望每个帐户都可以用作 Laravel 中的存储磁盘。
通常,Laravel's disks 在config/filesystems.php 中定义。但我不想在那里对我的 FTP 帐户进行硬编码,而是想动态定义它们(在中间件中)。
这可能吗?我该如何做到这一点?
【问题讨论】:
-
您可以使用 config() 助手来动态设置配置
-
也许laravel.com/docs/5.5/filesystem#custom-filesystems 这对您有帮助吗?这并不完全是您想要的,但它应该为您指明动态创建和使用文件系统的正确方向。
-
您必须在某处定义它们... DB 或 config (.env) 我会采用 .env 方式并在 config 中加载变量。
-
@AdnanMumtaz 我把
config('filesystems.disks.foo', ['driver' => 'local', 'root' => storage_path('app/foo')]);放在我的AppServiceProvider::boot()中。那是行不通的。原因是配置中的文件系统是在AppServiceProvider运行之前注册的。 -
@Kyslik 你能说得更清楚些吗?
标签: laravel filesystems storage