0
我想在ZF2中创建一个简单的电子邮件模板测试,我使用依赖注入为了创建一个PhpRenderer类的实例,并设置了所有依赖关系。ZF2链接依赖注入
看来,我可能会拼命注入链接,因为路径“电子邮件”不存在于AggregateResolver中。
内module.config.php
'di' => array(
'instance' => array(
'Zend\View\Resolver\TemplatePathStack' => array(
'options' => array(
'script_paths' => array(
'email' => __DIR__ . '/../view/application/email',
),
),
),
'Zend\View\Resolver\AggregateResolver' => array(
'attach' => array(
'Zend\View\Resolver\TemplatePathStack',
),
),
'Zend\View\Renderer\PhpRenderer' => array(
'setResolver' => 'Zend\View\Resolver\AggregateResolver',
),
),
),
内TestController.php
$di = new \Zend\Di\Di;
$renderer = $di->get('Zend\View\Renderer\PhpRenderer');
$content = $renderer->render('email/test', null);
echo($content);
消息:
Zend\View\Renderer\PhpRenderer::render: Unable to render template "email/test"; resolver could not resolve to a file
任何帮助将受到欢迎。
自写上面,我打得周围,由对苯二甲酸二数组中删除的TemplatePathStack这一点也没有任何影响,所以我不知道它是在所有正在使用的AggregateResolver,所以它可能是一个链接的问题:
'di' => array(
'instance' => array(
/*'Zend\View\Resolver\TemplatePathStack' => array(
'addPaths' => array(
'paths' => array(
'email' => __DIR__ . '/../view/application/email',
),
),
),*/
'Zend\View\Resolver\AggregateResolver' => array(
'attach' => array(
'Zend\View\Resolver\TemplatePathStack',
),
),
'Zend\View\Renderer\PhpRenderer' => array(
'setResolver' => 'Zend\View\Resolver\AggregateResolver',
),
),
),
Aborgrove
乍一看,该'TemplatePathStack'期待'script_paths的关键参数'包含模板路径的数组,但你使用'setPaths' – Crisp
谢谢克里斯,我已经编辑了相应的,也在上面的问题。应该将'options'数组自动传递到TemplatePathStack的__construct方法中?因为我正在为__construct中的'options'数组获取NULL值。 – Aborgrove