2

拡張するコントローラークラスがありますZend\Mvc\Controller\AbstractActionController。アトム フィードを生成するアクション メソッドの 1 つが必要です。

ViewFeedStratagy私はmodule.config.phpで有効にしました:

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ですか?

4

1 に答える 1

0

'strategies'、ではありません'stratagies';)

また'ViewFeedStrategy'、そうではありません'ViewFeedStratagy'

于 2015-09-03T22:40:00.743 に答える