2009-09-20 1 views
1

Допустим, у меня есть 2 контроллера, содержание и новости:Посмотреть перегрузкой в ​​Zend Framework

класс ContentController расширяет Zend_Controller_Action {}

и

класс NewsController расширяет ContentController {}

Если не отображаются мнения для контроллера новостей, я хочу, чтобы Zend использовал путь к скриптам своего родительского контроллера. Как я могу достичь этого, не направляя его на родительский контроллер?

ответ

3

Вы должны добавить scriptPath вручную:

class ContentController extends Zend_Controller_Action { 

    public function init() 
    { 
     $this->view->addScriptPath(APPLICATION_PATH . '/views/scripts/content'); 
    } 

} 

и

class NewsController extends ContentController { 

    public function init() 
    { 
     // Ensure that ContentController inits. 
     parent::init(); 
     $this->view->addScriptPath(APPLICATION_PATH . '/views/scripts/news'); 
    } 
} 

Это будет использовать функциональные возможности стека инфлектора скрипта вида. Сначала он будет выглядеть в указанном пути, который равен APPLICATION_PATH. '/ views/scripts/news', если скрипт там не найден, он будет выглядеть во втором каталоге в стеке, который равен APPLICATION_PATH. '/ views/scripts/content'.