我正在使用 Zend 模块化应用程序方法。我已经明智地设置了 Zend_Acl 模块。我已经Default_Model_AirlineMapper
在默认模块中设置了一个映射器类。
class Default_Model_AirlineMapper extends Model_AbstractMapper {
public static function fetchAll($columns = null) {
$dbTableObj = new Default_Model_DbTable_Airline();
$select = $dbTableObj->select();
if( is_array($columns) && sizeof($columns) > 0 ) $select->from($dbTableObj, $columns );
return $dbTableObj->fetchAll( $select );
}
}
现在我正在尝试Default_Model_AirlineMapper
从管理模块控制器访问它
public function employeepreferredairlinesAction(){
$dom_airlines = Default_Model_AirlineMapper::fetchAll(array('airline_id','airline_name'), null, array('airline_name asc'));
$this->view->dom_airline_dd = Zend_Json::encode($dom_airlines);
}
我已经为默认模块设置了访问检查插件,例如
class Default_Plugin_AccessCheck extends Zend_Controller_Plugin_Abstract {
public function preDispatch(Zend_Controller_Request_Abstract $request) {
if('default' === ($module = $request->getModuleName())){
// Do acl check
}else{
// throw it to default login
$request->setModuleName('default')->setControllerName('index')->setActionName('login');
}
}
}
简而言之,当我尝试访问Default_Model_AirlineMapper::fetchAll()
它时,我会进入默认的模型登录页面,但是当我评论它时,它工作正常。
这里发生了什么我没有得到。只有在执行默认模块时才有可能Bootstrap.php
,但我正在从管理模块工作和访问。请解释。