我目前面临以下问题:
使用laravel我想动态创建和播种我的权限配置。我目前用以下方式硬编码(在Config/permissions.php
内):
<?php
return [
'core' => [
'permissions' => [
[
'name' => 'name',
'description' => 'desc',
],
[
'name' => 'name',
'description' => 'desc',
],
],
],
];
使用laravel我可以使用"dot"表示法。正如我所做的那样,轻松访问我的配置文件:
\Config::get('permissions.core');
但是,我想动态生成上面的代码。我已尝试手动重新创建它,但我总是遇到无法命名我的第一个数组的问题,结果如下:
array(2) {
[0]=>
array(1) {
["core"]=>
array(0) {
}
}
[1]=>
array(1) {
["example"]=>
array(0) {
}
}
}
如果我想在此阵列上使用点符号:
\Config::get('permissions.core');
我收到一个未定义的索引错误。我的具体问题是,如何重新创建“硬编码”&#39;阵列?如何为我的第一个数组命名(&#39;核心&#39;),这样我就可以获得“硬编码”#39;导致?
谢谢你的提前。
答案 0 :(得分:0)
好吧我现在觉得很蠢。我问了这个问题,因为我正撞击桌子(不是字面意思),忘记了基本数组是如何工作的。我希望在发帖时获得新的见解。所需要的只是:
$config = \Config::get('permissions');
$modules = //retrieve modules
foreach($modules as $module){
$config[$module->getSlug()] = array();
}
\Config::set('permissions', $config);
结果是:
array(2) {
["core"]=>
//the part below is from another method
array(4) {
[0]=>
string(9) "permission_1"
[1]=>
string(10) "permission_2"
[2]=>
string(10) "permission_3"
[3]=>
string(11) "permission_4"
}
["module"]=>
array(0) {
}
}