0

首先对 woffle 感到抱歉,因为我不确定如何最好地描述这一点。基本上我不确定如何在加载控制器之前在引导程序中获取参数,但这是冗长的版本......

我有一个 acl 类来存储我所有的默认资源。我所有的页面/帖子内容都是一个数据库,我希望管理员能够选择页面可用的角色。

我知道可以循环遍历数据库表并一次将它们全部添加,但我担心这会消耗资源。我让它工作,我的访问检查插件可以调用动态权限函数,但我需要获取当前页面 ID 的参数,并且在加载控制器之前设置它的权限。

这有意义还是我什么都不担心,我应该一次获得所有页面的资源?

提前感谢您阅读我的乱码!!

4

1 回答 1

1

通过实际阅读zend手册,我实际上已经找到了我需要的东西!哦!

我只需要使用 $request->getParams() 这将允许我从 url 获取 post id

然后我可以使用以下方法设置权限

下面进入访问检查插件

$params =  $request->getParams();    
$this->_acl->setDynamicPermissions($params['post_id']);

然后在 Acl 类中

 public function setDynamicPermissions($id) {

    $id             = (int)$id;
    $page_id        =  "page-" . $id;

    $post           = new Model_DbTable_Post();
    $restriction    = $post->getPostRestriction($id);


    $this->add(new Zend_Acl_Resource($page_id));
    $this->allow($restriction, $page_id);

}
于 2010-03-25T14:30:12.367 回答