1

モジュールのブログに簡単な構成とコントローラーがあります。

module.config.php:

return array(
    'controllers'=>array(
        'invokables'=>array(
            'Blog\Controller\Blog'=>'Blog\Controller\BlogController',
        ),
    ),
    'router'=>array(
        'routes'=>array(
            'blog'=>array(
                'type'=>'literal',
                'options'=>array(
                    'route'=>'/blog',
                    'defaults'=>array(
                        'controller'=>'Blog\Controller\Blog',
                        'action'=>'index',
                    ),
                ),
                'may_terminate'=>true,
                'child_routes'=>array(
                    'rss'=>array(
                        'type'=>'literal',
                        'options' => array(
                            'route'=>'/rss',
                            'defaults'=>array(
                                'action'=>'rss',
                            ),
                        ),
                    ),
                )
            )
        )
    ),
);

ブログコントローラー.php:

namespace Blog\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;

class BlogController extends AbstractActionController
{
    public function indexAction(){
        return new ViewModel(array());
    }

    public function rssAction(){
        return new ViewModel(array());
    }
}

ルート/blogは正しく機能します。

しかし/blog/rss - 動かない

Zend Framework 2 の応答とエラー メッセージ:

404 エラーが発生しました
ページが見つかりません。
要求されたコントローラーは、要求をディスパッチできませんでした。
コントローラ:
    ブログ\コントローラー\ブログ
例外はありません

どうしたの?前もって感謝します。

4

2 に答える 2

0

問題は、matchedRouteName にあります。

child_routes あり

保護された 'matchedRouteName' => 文字列 'blog/rss' (長さ = 8),

child_routes なし

保護された 'matchedRouteName' => 文字列 'ブログ' (長さ = 4)

/blog/rss にアクセスしようとすると、ルート処理でエラーが発生し、404 ページにリダイレクトされます。

于 2015-04-17T16:35:13.903 に答える
0

親のように `blog/rss' ルートにmay_terminate設定する必要はありません。true

于 2015-04-11T17:35:12.617 に答える