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'); ?>

Вы должны поместить скрипт вида в папку вида в папке контроллера вашего модуля

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