我知道 filesystems.php 来创建磁盘,我目前正在使用它,配置了 ~~ 20 个磁盘。
我对这些有一个新问题,我目前正在尝试为每个磁盘添加前缀,一个字符串。问题是运行时正在保存路径,php artisan config:cache
但我需要在运行时更改它们,例如,对于用户Sergio
,它需要附加Sergio/
到以下磁盘,例如:
//filesystems.php
'random' => [
'driver' => 'local',
'root' => storage_path('app/random'),
],
然后
Storage::disk("random")->getDriver()->getAdapter()->getPathPrefix();
//outputs /var/www/html/project/storage/app/random
并且目标是在例如中间件中设置配置,我目前正在设置 tentant 数据库已经像这样
//Middleware
Config::set('database.connections.tenant.database', "Sergio");
DB::reconnect('tenant');
我目前可以正确设置路径
Config::set('filesystems.disks.random.root',storage_path('app/Sergio/random'));
但我很担心,因为如果在该行之前我尝试到达路径,存储会将初始路径保存在内存中,而不是在更改后重新获取它。
例如。这样做没有任何中间件。
$fullPath1 = Storage::disk("random")->getDriver()->getAdapter()->getPathPrefix();
Config::set('filesystems.disks.random.root',storage_path('app/Sergio/random'));
$fullPath2 = Storage::disk("random")->getDriver()->getAdapter()->getPathPrefix();
打算发生的事情是$fullPath1
输出初始路径,/var/www/html/project/storage/app/random
然后$fullPath2
输出/var/www/html/project/storage/app/Sergio/random
有没有办法让存储知道我已经更改了磁盘本地路径?