index.php中的控制器如下
require('Zend/Loader/Autoloader.php');
Zend_Loader_Autoloader::autoload(true);
$registry = Zend_Registry::getInstance();
//配置视图脚本路径
$view = new Zend_View();
$view->setScriptPath('./app/views/scripts/themes/');
$registry['view']=$view;
//配置前端控制器
$controller = Zend_Controller_Front::getInstance();
$controller->setBaseUrl('/zfweb')
   ->addModuleDirectory('./app/modules/')
   ->setModuleControllerDirectoryName('controllers')
   ->setParam('noViewRenderer',true)
   ->setParam('noErrorHandler',true)
   ->setParam('useDefaultControllerAlways', true)
   ->dispatch();
我使用的是模块化的设计结构,但是当我访问localhost/zf/index的时候提示Fatal error: Call to undefined method stdClass::render() in 。我怀疑是视图对象根本就没被引用到indexController.php中,但是我在indexController.php
中用了
public function ini(){
$this->registry = Zend_Registry::getInstance();
$this->view = $this->registry['view'];
$this->view->baseUrl = $this->_request->getBaseUrl();

}
但是就是提示上面那个错误。请帮忙看看谢谢

解决方案 »

  1.   

    Zend_Registry根本也不是那样子用的。而且也不需要做你那样子的设置。视图设置改一下:$view = new Zend_View();
    $viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer();
    $viewRenderer->setView($view)->setViewBasePathSpec('./app/views/scripts/themes/');
    Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);另外你怎么把noViewRenderer设置为true?这个值不能设置。至于Zend_Registry,应该这样子用:
    $registry = Zend_Registry::getInstance(); 
    $registry->set('view', $view);
    不过在你这里根本就不必要