1

ルートに問題があります。

それでは、'name' という名前のパラメーターを取得するアクションeditを持つTestControllerがあるとします。

アクセス URL はtest.com/test/edit/name/randomnameになります。

test.com/test/edit/randomnameからアクセスできるようにしたかったので、これを Bootstrap の _initRoutes 関数に追加しました。

$router = Zend_Controller_Front::getInstance()->getRouter();
            $route = new Zend_Controller_Router_Route(
                'test/edit/:name',
                array('controller' => 'test', 'action' => 'edit', 'name' => 'Default'));
        $router->addRoute('edit-test', $route);

思い通りに動作しますが、別の問題が発生しました。次のようなlayout.phtmlにリンクがあります

<a href="<?php echo $this->url(array('controller' =>'account','action'=>'logout'));?>">Logout</a>

問題は、test.com/test/edit/randomnameに移動すると、奇妙な理由で上記のリンクが変更され、上記と同じ URL、つまりtest.com/test/edit/randomnameを指すことです。

何がうまくいかないのですか?

注: モジュールを使用しています。TestController はデフォルト モジュールにあります。

4

1 に答える 1

3

url()以前は、 view-helperで使用するルートを指定する必要がありました。ログアウト ルートはデフォルト ルートを使用しているように見えるため、url()呼び出しで指定します。

<a href="<?php 
  echo $this->url(array(
     'controller'  =>'account',
     'action'      =>'logout'
  ), 'default'); ?>">Logout</a>

ルートを明示的に指定しない場合、現在のルートが使用されます。これはおそらくedit-testルートです。

于 2013-02-07T13:31:36.553 に答える