我有一個bug,實際上這是錯誤,這是通知,但仍然,我想修復它;zend框架中的訪問控制
當我嘗試訪問的頁面與null role
,其顯示的信息:
Notice: Trying to get property of non-object in C:\Zend\Apache2\htdocs\hotelrwanda\application\plugin\AccessCheck.php on line 18
怎樣才能得到它固定在這裏是我的腳本:
public function preDispatch(Zend_Controller_Request_Abstract $request) {
$resource = $request->getControllerName();
$action = $request->getActionName();
$identity = $this->_auth->getStorage()->read();
$role = $identity->role;
if(!$this->_acl->isAllowed($role, $resource, $action)){
$request->setControllerName('users')
->setActionName('login');
}
}
線:18此行:$role = $identity->role;
它看起來像角色是無效的。你確定角色在Zend_Auth中被保存爲身份的一部分嗎?轉儲身份,看看有什麼。您可能沒有正確地將角色保存到會話中。要明白爲什麼該屬性無效,我們需要查看將身份保存到存儲的代碼。 – RockyFord
不,我沒有添加任何東西,因爲基於教程我發現沒有這樣的事情。你能告訴我怎麼做 – Akram
你真的把角色叫做'空'嗎?如果這樣改變它。否則你會遇到各種各樣的問題。 – vascowhite