zf3 在动作中获得不同的视图
zf3 getting different view in an action
我在 zf2 中这样做,
$view = 'application/use/view';
$htmlString = $this->getServiceLocator()
->get('viewmanager')
->getRenderer()
->render(
$view,
array(
'institute' => $institute,
'gender' => $gender
)
);
但是在 zf3 中没有直接的 getServiceLocator
方法我怎么能在 zf3 中通过工厂做到这一点
到目前为止我已经这样做了:
在我的工厂里
public function __invoke(ContainerInterface $container, $requestedName, Array $options = null) {
$auth = $container->get('doctrine.authenticationservice.orm_default');
$view = $container->get('Zend\View\Renderer\PhpRenderer');
$entityManager = $container->get('doctrine.entitymanager.orm_default');
return new $requestedName($entityManager, $auth, $view);
}
在我的行动中我该怎么做
你Google做到了吗? First hit for "zf3 set view in controller"
像这样实现它:
在您的配置中注册您的新模板或任何您想要的模板。
'view_manager' => [
'template_map' => [
'layout/layout' => __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'view' . DIRECTORY_SEPARATOR .
'layout' . DIRECTORY_SEPARATOR . 'layout.phtml',
'layout/second-layout' => __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'view' . DIRECTORY_SEPARATOR .
'layout' . DIRECTORY_SEPARATOR . 'second-layout.phtml',
],
'template_path_stack' => [
__DIR__ . DIRECTORY_SEPARATOR .'..' . DIRECTORY_SEPARATOR . 'view',
],
],
在动作中应用模板
public function indexAction()
{
// Use a different view template for rendering the page.
$viewModel = new ViewModel();
$viewModel->setTemplate('layout/second-layout');
return $viewModel;
}
我在 zf2 中这样做,
$view = 'application/use/view';
$htmlString = $this->getServiceLocator()
->get('viewmanager')
->getRenderer()
->render(
$view,
array(
'institute' => $institute,
'gender' => $gender
)
);
但是在 zf3 中没有直接的 getServiceLocator
方法我怎么能在 zf3 中通过工厂做到这一点
到目前为止我已经这样做了:
在我的工厂里
public function __invoke(ContainerInterface $container, $requestedName, Array $options = null) {
$auth = $container->get('doctrine.authenticationservice.orm_default');
$view = $container->get('Zend\View\Renderer\PhpRenderer');
$entityManager = $container->get('doctrine.entitymanager.orm_default');
return new $requestedName($entityManager, $auth, $view);
}
在我的行动中我该怎么做
你Google做到了吗? First hit for "zf3 set view in controller"
像这样实现它:
在您的配置中注册您的新模板或任何您想要的模板。
'view_manager' => [
'template_map' => [
'layout/layout' => __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'view' . DIRECTORY_SEPARATOR .
'layout' . DIRECTORY_SEPARATOR . 'layout.phtml',
'layout/second-layout' => __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'view' . DIRECTORY_SEPARATOR .
'layout' . DIRECTORY_SEPARATOR . 'second-layout.phtml',
],
'template_path_stack' => [
__DIR__ . DIRECTORY_SEPARATOR .'..' . DIRECTORY_SEPARATOR . 'view',
],
],
在动作中应用模板
public function indexAction()
{
// Use a different view template for rendering the page.
$viewModel = new ViewModel();
$viewModel->setTemplate('layout/second-layout');
return $viewModel;
}