我正试图围绕Sentry中的权限和数组。当我对它们进行硬编码时,我让它们正常工作,这很容易,但从表格中分配它们证明是非常......至少可以说是令人沮丧。这是处理它的函数:
public function postGroup(){
$name = Input::get('name');
$inputs = Input::except('name');
$permissions = array("self.view" => 1, "self.update" => 1);
foreach($inputs as $key => $value)
{
$raw_name = $key;
$name = str_replace('_', '.', $raw_name);
array_push($permissions, array($name => 1)); // The issue is here.
}
...
基本上,我们现在为表格传递的每个权限都有一个$permissions
数组[user.create] => 1, [user.view] => 1
等。接下来,使用Sentry::createGroup
我需要根据此数组设置权限。
//Create the group
$group = Sentry::createGroup(array(
'name' => $name,
'permissions' => $permissions //Doesn't work.
));
当我检查我的数据库时,我看到了:
{"self.view":1,"self.update":1,"0":1,"1":1}
它应该是这样的:
{"self.view":1,"self.update":1,"user.create":1,"user.view":1}
所以我们可以看到self.*
的工作正常,但是因为我正在调用array_push($permissions, array($name => 1));
我正在使$permissions
成为一个多维数组(因此我们看到"0":1
在数据库中;它正在查看索引。但我不是100%确定如何解决这个问题......
因此,任何对数组处理和Sentry权限的深入了解都会有所帮助。我会继续尝试。
提前致谢!
答案 0 :(得分:1)
我是个白痴......这是一个非常简单的答案。替换:
array_push($permissions, array($name => 1)); // The issue is here.
with(我简直不敢相信这是多么简单)
$permissions[$name] = 1;
避免多维数组问题。 Le Sigh。