2013-02-10 44 views
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

+2

也许是因为你写的'stratgies',而不是'strategies'? – markus 2013-02-10 11:21:17

+0

或者也许是因为您的替代策略没有优先于默认策略?您可能想要将侦听器从默认策略中分离出来。 – markus 2013-02-10 11:22:19

+0

,typoe会这么做:) – Andrew 2013-02-11 17:09:01

回答

0

'strategies',不'stratagies'

而且'ViewFeedStrategy',不'ViewFeedStratagy'

相关问题