【发布时间】:2015-05-11 20:04:48
【问题描述】:
我今天早上遇到了FileSystem::makeDirectory 的问题,它直接调用了mkdir。我正在尝试创建一个目录,以递归方式从我的配置中提取所需的模式,如下所示:
$filesystem->makeDirectory($path, config('permissions.directory'), true);
config/permissions.php
<?php
return [
'directory' => env('PERMISSIONS_DIRECTORY', 0755),
'file' => env('PERMISSIONS_FILE', 0644)
];
.env
...
PERMISSIONS_DIRECTORY=0775
PERMISSIONS_FILE=0664
当这个被调用时,目录被创建,但是它获得的权限被搞砸了。它得到了类似于dr----Sr-t+ 的东西。经过一些研究,我得出的结论是,当我使用config('permissions.directory') 将值传递给我的配置中的模式参数时,模式被视为十进制而不是八进制。所以对 config 的调用很可能会返回775,它被传递到函数中,而不是0775。
如果我删除对config 的调用,则会使用正确的权限创建目录:
$filesystem->makeDirectory($path, 0775, true);
有谁知道如何解决这个问题,同时仍然能够将我的权限存储在我的配置文件中?
【问题讨论】:
-
试试
intval函数:intval('0755', 8) -
这似乎工作得很好,谢谢。如果您创建答案,我会接受。
标签: php laravel permissions mkdir