6

ZF1 では、layout.phtml ファイルでパーシャルを使用します。

$this->partial('header.phtml', array('vr' => 'zf2'));

ZF2 で同じことを行うにはどうすればよいでしょうか?

4

2 に答える 2

27

これは、

 echo $this->partial('layout/header', array('vr' => 'zf2'));

を使用してビュー内の変数にアクセスできます

echo $this->vr;

module.config.php ファイルの view_manager に次の行を追加することを忘れないでください。

'layout/header'           => __DIR__ . '/../view/layout/header.phtml',  

追加後はこんな感じ

return array(  

'view_manager' => array(
        'template_path_stack' => array(
            'user' => __DIR__ . '/../view' ,
        ),
        'display_not_found_reason' => true,
        'display_exceptions'       => true,
        'doctype'                  => 'HTML5',
        'not_found_template'       => 'error/404',
        'exception_template'       => 'error/index',
        'template_map' => array(
            'layout/layout'           => __DIR__ . '/../view/layout/layout.phtml',

            'layout/header'           => __DIR__ . '/../view/layout/header.phtml',            

            'error/404'               => __DIR__ . '/../view/error/404.phtml',
            'error/index'             => __DIR__ . '/../view/error/index.phtml',
        ),


    ),    

);
于 2012-08-29T14:43:11.160 に答える
6

受け入れられた回答ですでに述べたように、使用できます

echo $this->partial('layout/header', array('vr' => 'zf2'));

layout/headerただし、module.config.php で定義する必要があります。


を散らかしたくない場合はtemplate_map、に基づく相対パスを使用しtemplate_path_stackて、パーシャルを直接指すことができます。

次のように定義したとします。

'view_manager' => array(
        /* [...] */
        'template_path_stack' => array(
            'user' => __DIR__ . '/../view' ,
        ),
        'template_map' => array(
            'layout/layout'           => __DIR__ . '/../view/layout/layout.phtml',

            'error/404'               => __DIR__ . '/../view/error/404.phtml',
            'error/index'             => __DIR__ . '/../view/error/index.phtml',
        ),
    ),    
);

あなたのmodule.config.phpとあなたのlistsnippet.phtmlがにある.../view/mycontroller/snippets/listsnippet.phtml場合、次のコードを使用できます:

echo $this->partial('mycontroller/snippets/listsnippet.phtml', array('key' => 'value'));
于 2013-04-09T13:32:19.487 に答える