调用model_dbtable时,Zend Framework ACL无法正常工作

时间:2012-07-28 21:05:25

标签: zend-framework frameworks

Hy Somebody!

我想在Zend Framework中解决一个问题。情况如下:我有一个indexController,我在其中放置了一个getAktGroupMailAction - 我的ACL上的内容 - 就像这里:

public function getAktGroupMail(){
    $ggroup = new Application_Model_DbTable_Groups();
    //return $groupN = $ggroup->getUserAktGroupMail();      
}

如果我没有在“return”之前加上“//”字符,我会收到错误消息:

  

致命错误:未捕获的异常'Zend_Acl_Exception',在/var/www/hobu/library/Zend/Acl.php:365中找不到消息'资源'错误'堆栈跟踪:#0 / var / www / hobu / library / Zend / Acl.php(846):Zend_Acl-&gt; get('error')#1 /var/www/hobu/application/plugins/AccessCheck.php(19):Zend_Acl-&gt; isAllowed('user' ,'错误','错误')#2 /var/www/hobu/library/Zend/Controller/Plugin/Broker.php(309):Application_Plugin_AccessCheck-&gt; preDispatch(Object(Zend_Controller_Request_Http))#3 / var / www /hobu/library/Zend/Controller/Front.php(941):Zend_Controller_Plugin_Broker-&gt; preDispatch(Object(Zend_Controller_Request_Http))#4 /var/www/hobu/library/Zend/Application/Bootstrap/Bootstrap.php(97) :Zend_Controller_Front-&gt; dispatch()#5 /var/www/hobu/library/Zend/Application.php(366):Zend_Application_Bootstrap_Bootstrap-&gt; run()#6 /var/www/hobu/public/index.php( 26):Zend_Application-&gt; run()#7 {main}下一个异常'Zend_Controller_Exception',消息'资源'错误'未找到#0 / var / www / h obu / library / Zend / Acl.php(846):第312行的/var/www/hobu/library/Zend/Controller/Plugin/Broker.php中的Zend_Acl-&gt; get('error')#1 / va < / p>

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

您没有包含“访问检查”插件的代码,这是生成错误的内容,但我猜测它的作用是使用当前控制器/操作名称调用Zend_Acl。如果是这样,则底层问题与ACL无关。您的$groupN = $ggroup->getUserAktGroupMail()抛出异常,导致请求被路由到错误控制器。由于您没有设置名为“error”的资源,因此在检查用户是否可以访问该控制器时会生成ACL错误。

我建议您修改访问检查插件,以便在控制器名称为“错误”时不检查权限。这应该摆脱您的ACL错误消息,让您看到并修复潜在的问题。