【问题标题】:Zend Framework ACL doesn't work properly when it call model_dbtableZend Framework ACL 在调用 model_dbtable 时无法正常工作
【发布时间】:2012-07-27 03:01:58
【问题描述】:

你好!

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

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

如果我不在“return”这个词之前放置“//”字符,我会收到错误消息:

致命错误:在 /var/www/hobu/library/Zend/Acl.php:365 中未捕获异常 'Zend_Acl_Exception' 并带有消息 'Resource 'error' not found' 堆栈跟踪:#0 /var/www/hobu/ library/Zend/Acl.php(846): Zend_Acl->get('error') #1 /var/www/hobu/application/plugins/AccessCheck.php(19): Zend_Acl->isAllowed('user', '错误', '错误') #2 /var/www/hobu/library/Zend/Controller/Plugin/Broker.php(309): Application_Plugin_AccessCheck->preDispatch(Object(Zend_Controller_Request_Http)) #3 /var/www/hobu/ library/Zend/Controller/Front.php(941): Zend_Controller_Plugin_Broker->preDispatch(Object(Zend_Controller_Request_Http)) #4 /var/www/hobu/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front-> dispatch() #5 /var/www/hobu/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run() #6 /var/www/hobu/public/index.php(26): Zend_Application-> run() #7 {main} 下一个异常 'Zend_Controller_Exception' 带有消息 'Resource 'error' not found#0 /var/www/hobu/library/Zend/Acl。 php(846): Zend_Acl->get('error') #1 /va in /var/www/hobu/library/Zend/Controller/Plugin/Broker.php on line 312

有人可以帮助我吗?

【问题讨论】:

    标签: zend-framework frameworks


    【解决方案1】:

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

    我建议您修改您的访问检查插件,这样如果控制器名称为“错误”,它就不会检查权限。这应该可以消除您的 ACL 错误消息,让您看到并解决根本问题。

    【讨论】:

    • 公共函数 getUserAktGroupMail() { $dbAdapter = Zend_Db_Table::getDefaultAdapter(); $def = 'Y'; $select = $dbAdapter->select()->from('felhasznalok-csoportok',array('groupName', 'userId','def')) ->where('userId = ?', $this->getUserMail ()) ->where('def = ?', $def); $stmt = $select->query(); $result = $stmt->fetchAll();返回 $res=$result[0]['groupName']; }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-12
    • 1970-01-01
    相关资源
    最近更新 更多