ZF1 では、layout.phtml ファイルでパーシャルを使用します。
$this->partial('header.phtml', array('vr' => 'zf2'));
ZF2 で同じことを行うにはどうすればよいでしょうか?
ZF1 では、layout.phtml ファイルでパーシャルを使用します。
$this->partial('header.phtml', array('vr' => 'zf2'));
ZF2 で同じことを行うにはどうすればよいでしょうか?
これは、
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',
),
),
);
受け入れられた回答ですでに述べたように、使用できます
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'));