1

Zend Framework 1.12 を使用しています。

ルーターをいくつか追加したかったのです。私のシステムにはユーザーと管理者がいて、管理者がユーザーのページを表示するためのルーターを追加しました。

追加した

// meant to create the usage "xxx.com/userview/someusername"
    $route = new Zend_Controller_Router_Route(
            'userview/:username',
            array('controller' => 'user',
                'action' => 'viewone',
                'username' => 'someusernamedefault')
            );
    $router = $frontController->getRouter();
    $router->addRoute('userview', $route);

私の Bootstrap.php ファイルに。サイドバーには、(別のコントローラーの) アクションへのリンクを含むリンクがいくつかありました。リンクを.phtmlファイルに追加しました

echo $this->url(array('controller'=>'somecontroller', 'action'=>'someaction' ), null, true);

このサイドバーには、複数のコントローラーからのこのリンクが多数含まれています。

ルートを追加するまで、これらは正常に機能しました。Bootstrap に新しいルートを追加した後 (そして、新しいアクション (viewall) を rooter から指定されたコントローラー (ユーザー) に追加した後) は正常に動作します ("xxx.com/userview/someusername として使用できます)。しかし、私の他のリンクはサイドバーはすべて「xxx.com/userview」になり、コントローラーとアクションの値がすべて失われます...

私は何を間違っていますか?? URL をより適切に定義するか、ルーターをより適切に定義する必要がありますか?

前もって感謝します。

4

1 に答える 1

3

URL ヘルパーの 2 番目のパラメーターは、使用するルートの名前にする必要があります。null を渡すと、現在のルートを使用するように指示されます。これが、リンクが間違っている理由です。サイドバー リンクの呼び出しを次のように変更します。

$this->url(array('controller'=>'somecontroller', 'action'=>'someaction'), 'default');

そして、それはうまくいくはずです。

于 2012-12-24T12:16:08.767 に答える