7

いくつかのモジュールで使用したいパーシャルを作成しました。私はそれを私のカスタムライブラリに入れるのが最善の方法だと思いました。

しかし、残念ながら、次のような非常に醜いパスを使用せずに、このパーシャルを含める方法を見つけることができませんでした。

echo $this->partial('/../../../../vendor/myvendor/library/MyVendor/View/Views/FormPartial.phtml'
, array(...));

私の視点からベンダーディレクトリにリンクする方法はありますか?

4

1 に答える 1

14

問題は、リゾルバーが指定したビューテンプレートのパスを解決できないことです。私は通常、module.config.phpのtemplate_mapエントリに、アクセス可能なすべてのパーシャルの構成エントリを追加します

たとえば、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形式でパーシャルを使用している場合は、もう1つ実行できます。

<?php echo $this->partial('/module/controller/action'); ?>

モジュールのコントローラーフォルダーのビューフォルダーにビュースクリプトを配置する必要があります

于 2012-12-22T14:27:51.170 に答える