ルーティングとZendのドキュメントに関するすべての記事を読みましたが、この問題は解決できません。Zendルーティングの問題
私は、デフォルトと管理という2つのモジュールを持つ多言語アプリケーションを持っています。言語の選択は、(コントローラrouteShutdownプラグインで)正常に動作しているが、私はルータを設定するいくつかの問題を持っている:
私はこれらのURLの作業がしたい:
/
/controller
/controller/action
/action (default controller)
/controller/param (default action)
/admin
/admin/admin-controller
/admin/admin-controller/action
、それは次のようになり、言語セレクタを使用して:
/en
/en/controller
/en/controller/action
/en/action (default controller)
/en/controller/param (default action)
/en/admin/admin-controller
/en/admin/admin-controller/action
私はbootstapファイル(index.phpを)にこれを追加しました:
$frontController = Zend_Controller_Front::getInstance();
$router = $frontController->getRouter();
$router->removeDefaultRoutes();
$router->addRoute('langmodcontrolleraction',
new Zend_Controller_Router_Route('/:lang/:module/:controller/:action',
array('lang' => ':lang'))
);
$router->addRoute('langmodcontroller',
new Zend_Controller_Router_Route('/:lang/:module/:controller',
array('lang' => ':lang',
'action' => 'index'))
);
$router->addRoute('langmod',
new Zend_Controller_Router_Route('/:lang/:module',
array('lang' => ':lang',
'action' => 'index',
'controller' => 'index'))
);
$router->addRoute('lang',
new Zend_Controller_Router_Route('/:lang',
array('lang' => ':lang',
'action' => 'index',
'controller' => 'index',
'module' => 'default'))
);
$frontController->setControllerDirectory(array(
'default'=>BASE_PATH.'app/modules/default/controllers',
'admin'=>BASE_PATH.'app/modules/admin/controllers'));
は、ルータがURLを解析しているかをチェックするためには、私はrouteShutdownプラグインへのvar_dumpを追加しました:
はアン/に入ると、私が手:
array
'lang' => string 'en' (length=2)
'action' => string 'index' (length=5)
'controller' => string 'index' (length=5)
'module' => string 'default' (length=7)
OKです。私は/EN/controller1に入力すると、しかし、私は得る:
array
'lang' => string 'en' (length=2)
'module' => string 'controller1' (length=8)
'action' => string 'index' (length=5)
'controller' => string 'index' (length=5)
それは "controller1" にモジュールを設定しています。ルータにモジュールにデフォルト値を設定するように指示するにはどうすればよいですか?/en/controller/paramのようなURLの場合は? (モジュールとアクションをデフォルトに設定する)
これは非常に有用な答えです。あなたの説明は完璧です。今はルーティングの仕組みを理解しました:)ありがとうございます!私が15の担当者に達すると。あなたの答えに投票します。ここに私のウェブサイトがあります。ここで私はこれを実装します:[tryandsay.com](http://www.tryandsay.com) – Gustavo