1

アクションをベース URL とデフォルト コントローラにマップしようとしています。

これは簡単な機能であるか、「すぐに使える」機能であるはずですが、Zend Framework を使用して、デフォルト コントローラーのアクションをベース URL にどのようにマップしますか? 私はフレームワークにかなり慣れていないので、明らかな何かが欠けていることを願っています。

マッピングしようとしています:

domain.com/index/my-page から domain.com/my-page

デフォルトで設定されている他のルートを壊すことなく。

Zend_Router を使用してハッキングすることはできますが、他のルールに違反しています (例: /:controller/:action /:module/:controller/:action)。

注: /index/my-page は URL の例です。すべての indexController アクションで動的に機能する必要があります。

「tharkun」によって要求された URL マッピングの例 indexController にはメソッド indexAction および contactAction があり、URL が必要です

/index
/index/contact
/
/contact

2 番目のコントローラー testController にはメソッド indexAction と monkeyAction があり、URL が必要です

/test
/test/index
/test/monkey

基本的に - システムが VAR のコントローラーを見つけられない場合、デフォルトのコントローラーで VAR のアクションを探します。

4

1 に答える 1

2

デフォルトのコントローラーはIndexControllerです。

(デフォルトの)マッピングは次のように機能します。

/ => IndexController::indexAction
/index => IndexController::indexAction
/index/foo => indexController::fooAction
/foo => FooController::indexAction

したがって、このようなユーザー定義のルートを追加します(デフォルトよりも優先度が低くなります)

$frontController = Zend_Controller_Front::getInstance();
$router = $frontController->getRouter();
$route = new Zend_Controller_Router_Route(
    '/:action',
    array(
        'controller' => 'index'
    )
);
$router->addRoute('user', $route);

これは私のデフォルトルートの使用を壊しませんでした。

編集:コーヒーリングがコメントで述べたように、これはデフォルト以外のコントローラーのindexActionを壊します。

于 2009-01-05T14:59:34.807 に答える