2
我有一个控制器类扩展Zend\Mvc\Controller\AbstractActionController
。我想要一个动作方法来生成原子提要。为什么我的ZF2 MVC应用程序使用PhpRenderer而不是FeedRenderer?
我module.config.php启用ViewFeedStratagy
:
return array(
'view_manager' => array(
'stratagies' => array(
'ViewFeedStratagy',
),
...
),
...
);
而且在我的控制器,代码如下:
<?php
namespace Blog\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use Zend\Feed\Writer\Feed;
use Zend\View\Model\FeedModel;
class BlogController extends AbstractActionController
{
// other action methods
public function atomAction()
{
$feed = new Feed;
// set feed data
$feed->export('atom');
$feedModel = new FeedModel();
$feedModel->setFeed($feed);
return $feedModel;
}
}
当我请求的页面,我得到:
PHP Fatal error:
Uncaught exception 'Zend\View\Exception\RuntimeException' with message
'Zend\View\Renderer\PhpRenderer::render:
Unable to render template "blog/blog/atom";
resolver could not resolve to a file'
为什么它仍然试图使用Zend\View\Renderer\PhpRenderer
而不是Zend\View\Renderer\FeedRenderer
?
也许是因为你写的'stratgies',而不是'strategies'? – markus 2013-02-10 11:21:17
或者也许是因为您的替代策略没有优先于默认策略?您可能想要将侦听器从默认策略中分离出来。 – markus 2013-02-10 11:22:19
,typoe会这么做:) – Andrew 2013-02-11 17:09:01