В 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;
не забудьте добавить следующую строку в ваш view_manager файла module.config.php.
'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',$this->viewModel()->getCurrent()->getVariables());
- person davmor; 06.01.2016
$this->viewModel()->getCurrent()->getVariables()
возвращает ArrayObject.
- person davmor; 06.01.2016
Как уже говорилось в принятом ответе, вы можете использовать
echo $this->partial('layout/header', array('vr' => 'zf2'));
но тогда вам нужно определить layout/header
в вашем модуле.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'));