Laravel文件管理器动态base_directory

Max*_*med 2 php laravel-5 laravel-filesystem

我使用unisharp的laravel文件管理器.它很有效,我爱它的灵活性.

但是,我需要用户将他们的文件存储在各自的文件夹中.我可以通过改变user_fieldconf文件来做到这一点.我无法做的是让超级管理员访问,以便他可以看到所有其他用户的文件!我差点放弃试图解决这个问题.

这是我到目前为止所尝试的:

在config/lfm.php中

'base_directory'=>Unisharp\Laravelfilemanager\Handlers\ConfigHandler::class`,
Run Code Online (Sandbox Code Playgroud)

在处理程序中:

namespace Unisharp\Laravelfilemanager\Handlers;
class ConfigHandler
{
    public function userField()
    {
        return auth()->user()->name;
    }

    public function baseDirectory(){
        if(auth()->user()->user_type !== "S"){
            return 'storage/'.auth()->user()->name;
        }
        else{
            return 'storage/';
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但上面的代码显示了一个空白页面,它在Abyss中创建了我无法在我的机器上找到的文件夹.

任何帮助都会得到满足.

提前致谢.

小智 7

我有同样的问题.我设法修复它修改函数userField本身:

public function userField()
{
    $role = function_to_get_role();

    if($role == 'Admin'){
        return 'folder_1';
    }else{
        return 'folder_1/' . auth()->user()->name;          
    }
}
Run Code Online (Sandbox Code Playgroud)

我试图修改baseDirectory函数但没有成功.