0

1つのルータールールでそのコントローラー内のすべてのサブアクションを許可するにはどうすればよいですか?たとえば、これは次のとおりです。

visit: site/login                - works only
       site/login/forgetpassword - does not work
       site/login/remmeberme     - does not work

例:

$router = $e->getApplication()->getServiceManager()->get('router');
$route = Http\Literal::factory(array(
  'route' => '/login',
  'defaults' => array(
    'controller' => 'Application\Controller\Login',
    'action' => 'index'
  ),
));
$router->addRoute('login', $route, null);

ファローアップ:

/loginと/login/ anythingが機能するようにするにはどうすればよいですか?

$route = Http\Segment::factory(array(
  'route' => '/login[/:action]',
  'defaults' => array(
    'controller' => 'Application\Controller\Login',
    'action' => 'index'
  ),
));
$router->addRoute('login', $route, null);
4

1 に答える 1

1

公式ドキュメントには、優れたクイックスタートチュートリアルがあります。複数のアクションとIDパラメータを許可するように次のようにルートを設定します。詳細については、ドキュメントをご覧ください。

ZendCon2012のDASPRiDsプレゼンテーションにも興味があるかもしれません

 'router' => array(
    'routes' => array(
        'album' => array(
            'type'    => 'segment',
            'options' => array(
                'route'    => '/album[/:action][/:id]',
                'constraints' => array(
                    'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
                    'id'     => '[0-9]+',
                ),
                'defaults' => array(
                    'controller' => 'Album\Controller\Album',
                    'action'     => 'index',
                ),
            ),
        ),
    ),
),
于 2012-10-30T12:20:43.633 に答える