Простая проблема с включением файла в Zend?

Я создал проект Zend для Ubuntu, который находится в каталоге /var/www/student/.

Теперь у меня есть файл head.phtml в этом месте:

/student/application/views/scripts/index/head.phtml

Когда я пытаюсь включить файл head.phtml в

/student/application/modules/test/views/scripts/all/index.phtml

Как это:

echo $this->partial('index/head.phtml');

Это дает мне следующую ошибку:

Message: script 'index/head.phtml' not found in path (/var/www/student/application/modules/notification/views/scripts/) 

Включение файлов - это всегда сложная работа для меня. Как это исправить. Я должен включить этот файл во многих модулях, что является постоянным решением для этого, что я не должен угадывать путь

Спасибо

3 ответа

Решение

Вы можете добавить несколько путей для поиска файлов скриптов. Лучший способ - сделать это в файле начальной загрузки для всех ваших общих файлов (таких как head, footer, metas...).

Просто добавьте метод setupView в ваш загрузчик, где вы имеете дело со всем, что реализовано в ваших представлениях:

protected function _initView()
{
    $view = new Zend_View();

    // setup your view with jquery and other stuffs... 
    // [ ... ]

    // add the view directory to the stack of scripts paths
    $view->addScriptPath(APPLICATION_PATH . '/views/scripts/');
}
<? $this->setScriptPath('/student/application/views/scriptss'); ?>
<?= $this->partial('index/head.phtml') ?>

Я добавил следующую строку в контроллере init() функция.

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

Добавьте файл head.phtml в таком виде:

echo $this->partial('index/head.phtml');

Файл успешно добавлен.

Другие вопросы по тегам