2010-01-30 61 views
0

经过几次搜索,我遇到了一个jqgrid action helper,我可以将它包含到我的Zend MVC中。 但是下载源代码,并试图使用它后,我得到这个错误让一个jqgrid动作助手工作

Fatal error: Call to a member function getActionController() on a non-object in 
..... 
\Controller\Action\HelperBroker.php on line 299 

这里是助手

class My_Helper_jqgrid extends Zend_Controller_Action_Helper_Abstract { 
    /** 
    * Instance of the config file. 
    * 
    * @var Zend_Config_Ini 
    */ 
    protected $_config = null; 

    /** 
    * The instance of the database 
    * 
    * @var Zend_Db_Adapter_Abstract 
    */ 
    protected $_db = null; 

    /** 
    * The provided view 
    * 
    * @var Zend_View_Interface 
    */ 
    protected $_view = null; 

    /** 
    * The options provided to this helper 
    * 
    * @var array 
    */ 
    protected $_options = array(); 

    /** 
    * @var Zend_Loader_PluginLoader 
    */ 
    public $_pluginLoader; 

    public function __construct(Zend_View_Interface $view = null, array $options = array()){ 
     //$this->_db = Zend_Registry::getInstance()->get("db");   
     $this->_db = 'mato';    
     $this->_pluginLoader = new Zend_Loader_PluginLoader(); 
     $this->_view = $view;   
     $this->_options = $options;    
    } 

    /** 
    * Strategy pattern: call helper as broker method 
    * 
    * @param string | Zend_Db_Table_Select $sql 
    * @param string | array $columns 
    */ 
    public function direct($sql, $columns = "*", $tableId = "id", array $options = array()) { 

     Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->setNoRender(); 
     Zend_Controller_Action_HelperBroker::getStaticHelper('layout')->disableLayout(); 

     $this->_options = $options;  
     $page = $this->getRequest()->getParam("page", 1); // get the requested page 
     $rows = $this->getRequest()->getParam("rows", 20); // get how many rows we want to have into the grid 
     $sidx = $this->getRequest()->getParam("sidx", $tableId); // get index row - i.e. user click to sort 
     $sord = $this->getRequest()->getParam("sord", "asc") == "desc" ? "DESC" : "ASC"; // get the direction 
     $response = new stdClass(); // The response object which will be translated into a json object 
     ............... 
     ................ 
     return json_encode($response);  
    } 
} 

的摘录在我的控制器

print $this->_helper->Jqgrid("SELECT * FROM artist", 
     array("artist_code","artist_name","artist_album"), "id"); 

在我的引导

Zend_Controller_Action_HelperBroker::addPath(
     APPLICATION_PATH . "/controllers/helpers", "My_Helper"); 

我错过了什么?

+0

它可能有助于张贴一些示例代码... – 2010-01-31 15:51:45

回答