0

誰かが以下を実装するための最良の方法を知っているかどうか興味がありました:私は物事の「スコープ」を効果的に制御するパラメーターをzendフレームワーク1.12アプリに持っており、行のスコープを表すためにデータベース内のすべてのテーブルのフィールドです。これは単純な整数変数であり、「buildingID」と考えることができるため、使用する「building」を制御します。

プラグインでは、私は持っています:

Zend_Controller_Front::getInstance()->getRouter()->setGlobalParam('building', DYNAMIC_INT);

これは私が必要とすることを達成します。URLビューヘルパーを使用してURLを作成すると、パラメーターがありますが、常にパラメーターリストの最後にあります。これはプログラミングの観点からは些細なことですが、このグローバルパラメータをURLパラメータに「追加」するにはどうすればよいでしょうか。

site.com/admin/controller/action/param1/xyz/param2/xyz/building/2

になる

site.com/admin/controller/action/building/2/param1/xyz/param2/xyz ?

どんなアイデアにもオープン。このクラスの設定に問題があったため、URLビューヘルパーをオーバーロードする場合は、サンプルコードを提供してください。

皆さん、ありがとうございました!

4

1 に答える 1

0

カスタムルートを使用してこれを実現できます。ブートストラップファイルのどこかにルートを設定します。

$route = new Zend_Controller_Router_Route(
    ':controller/:action/building/:building/*'
);
$router = Zend_Controller_Front::getInstance()->getRouter();
$router->addRoute('building', $route);

そして、URLビューヘルパーを使用する前のある時点で以下が呼び出されたと仮定します...

Zend_Controller_Front::getInstance()->getRouter()->setGlobalParam('building', DYNAMIC_INT);

...ヘルパーの2番目の引数としてルートを指定できます。

echo $this->url(array(
    'controller' => 'admin',
    'action' => 'controller',
    'param1' => 'xyz',
    'param2' => 'xyz',
), 'building');

// /admin/controller/building/1/param1/xyz/param2/xyz
于 2013-02-26T04:04:40.283 に答える