Zend Framework 2 - Как включить частичное из библиотеки
Я написал партиал, который хочу использовать в нескольких модулях. Я думал, что лучший способ будет поместить его в мою библиотеку.
Но, к сожалению, я не мог придумать, как включить эту часть, не используя очень уродливый путь, такой как:
echo $this->partial('/../../../../vendor/myvendor/library/MyVendor/View/Views/FormPartial.phtml'
, array(...));
Любые идеи, как сделать ссылку на мой каталог поставщиков с моей точки зрения?
1 ответ
Проблема в том, что распознаватель не может определить путь к шаблону представления, который вы указали. Я обычно добавляю запись конфигурации для всех доступных партиалов в запись template_map в module.config.php
например, у меня есть такие партиалы верхнего и нижнего колонтитула, как мои view/layout/header.phtml и view/layout/footer.phtml
ниже мой конфиг
'template_map' => array(
'layout/layout' => __DIR__ . '/../view/layout/layout.phtml',
'header' => __DIR__ . '/../view/layout/header.phtml',
'footer' => __DIR__ . '/../view/layout/footer.phtml',
'error/404' => __DIR__ . '/../view/error/404.phtml',
'error/index' => __DIR__ . '/../view/error/index.phtml',
),
и внутри моего сценария просмотра макета я просто положил
<?php echo $this->partial('header'); ?>
а также
<?php echo $this->partial('footer'); ?>
Другой, если у вас есть ваши партиалы в формате / module / controller / action, вы также можете сделать
<?php echo $this->partial('/module/controller/action'); ?>
Вы должны поместить скрипт вида в папку вида в папке контроллера вашего модуля