Laravel文件管理器动态base_directory

时间:2018-01-18 08:58:17

标签: php laravel-5 laravel-filesystem

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

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

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

在config / lfm.php

'base_directory'=>Unisharp\Laravelfilemanager\Handlers\ConfigHandler::class`,

在处理程序中:

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/';
        }
    }
}

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

任何帮助都会得到满足。

提前致谢。

1 个答案:

答案 0 :(得分:6)

我遇到了同样的问题。我设法修复它修改函数userField本身:

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

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

我也尝试修改baseDirectory函数,但没有成功。