0

私はこのように設定された基本的なルートを持っています(残っているのは親切な部分だけです):

return array(
    'controllers' => array(
        'invokables' => array(
            'Main\Controller\Login' => 'Main\Controller\LoginController',
            'Main\Controller\Main' => 'Main\Controller\MainController',
            'Main\Controller\Index' => 'Main\Controller\IndexController',
            'Main\Controller\Candidate' => 'Main\Controller\CandidateController',
        ),
    ),

    'router' => array(
        'routes' => array(
            'home' => array(
                'type' => 'literal',
                'options' => array(
                    'route' => '/',
                    'defaults' => array(
                        'controller' => 'Main\Controller\Index',
                        'action' => 'index',
                    ),
                ),
            ),
            'main' => array(
                'type' => 'literal',
                'options' => array(
                    'route' => '/ts',
                    'defaults' => array(
                        'controller' => 'Main\Controller\Main',
                        'action' => 'index',
                    ),
                ),
                'may_terminate' => true,
                'child_routes' => array(
                    'candidates' => array(
                        'type' => 'literal',
                        'options' => array(
                            'route' => '/candidate',
                            'defaults' => array(
                                'controller' => 'Main\Controller\Candidate',
                                'action' => 'index'
                            ),
                        ),
                        'may_terminate' => true,
                        'child_routes' => array(
                            'add' => array(
                                'type' => 'literal',
                                'options' => array(
                                    'route' => '/add'
                                ),
                                'defaults' => array(
                                    'action' => 'add'
                                ),
                            ),
                        ),
                    ),
                ),
            ),
        ),
    ),

したがって、ルートは次のとおりだと思います。

/
/ts
/ts/candidate
/ts/candidate/add

最後の1つを除いて、すべてがスムーズに機能します/ts/candidate/add

いくつかの基本的なビューを作成しました。それぞれが単純に返されます

echo '<action_name>'

action_nameコントローラーのアクションはどこにありますか。しかし、毎回、私が入るとき/ts/candidate/add、私はindex actionから得ました

'Main\Controller\CandidateController'

の代わりにadd action。ビュー構造は次のようになります。

view
    -- errror
        -- 404.phtml
        -- index.phtml
    -- layout
        -- layout.phtml
        -- login.phtml
    -- main
        -- candidate
            -- index.phtml
            -- add.phtml
        -- main
            -- index.phtml
4

1 に答える 1

3

間違った場所に子ルート用がありますdefaults。それらは内部にあるはずですoptions

                    'child_routes' => array(
                        'add' => array(
                            'type' => 'literal',
                            'options' => array(
                                'route' => '/add'
                                // defaults go here
                                'defaults' => array(
                                    'action' => 'add'
                                ),
                            ),
                        ),
                    ),
于 2013-04-19T13:07:54.047 に答える