我正在尝试创建一个允许用户为CakePHP应用程序中的每个组设置ACL权限的视图。但是,在尝试在视图中执行ACL检查时,ACL检查每次都返回false。
在我的控制器中,我有以下代码:
$this->set('acl', $this->Acl);
视图然后是这样的用户:
<input type="checkbox" <?php echo ($acl->check('Group::'.$group['Group']['id'], 'Accommodations', 'index') ? $checked : $notChecked); ?> name="<?php echo $group['Group']['name']; ?>_accommodations_index" value="1">List<br />
$ checked和$ notChecked变量设置如下:
$checked = " checked='checked' ";
$notChecked = "";
这主要是为了创建一个复选框网格,它们最初是在哪里(如果该组有权访问它,则进行检查,如果该组没有,则取消选中。
复选框打印在一个表格中,该表格是通过迭代存在的每个组生成的。
有什么建议吗?
答案 0 :(得分:0)
请检查url。可能你错过了一些事情。它将如下:
$acl->check(
array(
'Group' => array('id' => $group['Group']['id'])
),
'Accommodations',
'index'
);
答案 1 :(得分:0)
发现问题。
($acl->check(array('model' => 'Group', 'foreign_key' => $group['Group']['id']), 'Accommodations/index') ? $checked : $notChecked); ?>
我必须指定数组(&#39; model&#39; =&gt;&#39; Group&#39;,&#39; foreign_key&#39; =&gt; $ group [&#39; Group&#39 ;] [&#39; id&#39;])让它发挥作用。