4

http://www.site.com/company/departmentなどの意味のある URL をセットアップしようとしていますが、Controller/Action シェイプにある既存の URL に影響を与えます。

私のブートストラップでは、次のように新しいルートを作成します。

$frontController = Zend_Controller_Front::getInstance();
$router = $frontController->getRouter();
$route = new Zend_Controller_Router_Route(":company/:dpt", array('controller'   => 'browse'));
$router->addRoute("browse", $route);

http://www.site.com/ABC_Co/dry_goodsを参照すると、BrowseController の IndexAction にルーティングされます。すごい!問題は、他の管理者関連の URL (/company/create など) もそこに誘導されていることです。

Zend にデフォルトの Controller/Action マッチングを最初に実行させ、失敗した場合にのみ Browse ルートに戻す方法はありますか?

ありがとう!

4

1 に答える 1

5

ルートは LIFO で処理されます。次のようにする必要があります。

$router->removeDefaultRoutes();
//add your routes
//add in the default route:
$route = new Zend_Controller_Router_Route(":module/:controller/:action"

代わりに、「ブラウズ」ルートに「静的」コンポーネントを追加したいだけかもしれません。それはより具体的です:

$route = new Zend_Controller_Router_Route("browse/:company/:dpt", array('controller'   => 'browse'));

IMO、2番目の方がより良いオプションです

于 2011-05-16T02:47:14.540 に答える