0

Zend Modular Application アプローチを使用しています。Zend_Acl モジュールを賢明にセットアップしました。Default_Model_AirlineMapperデフォルトモジュールに設定されていると言うMapperクラスがすでに1つあります。

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が、私は管理モジュールから作業してアクセスしています。説明してください。

4

0 に答える 0