2010-12-29 3 views
4

私はこれを理解できません。どのようにカスタム経路でURLヘルパーを使用しますか?Zend URLヘルパーとカスタムルート?

私はeditと呼ばれる私のusersコントローラのメソッドを持っており、それが

(代わりにdomain.com/users/editの)domain.com/settingsを通じて呼び出すことができるので、私はそれのためのカスタムルートを持っているときにI URLヘルパーをこのように使用します。

<li><a href="<?php echo $this->url(array('controller' => '', 'action' => 'settings')); ?>">Settings</a></li> 

それはメインページから正常に動作しますが、私は設定ページでHETたら、他のすべてのリンクは、現在のURLへのURLヘルパーのリンク(domain.com/settingsによって生成されました)

任意のideこれを修正する方法として?

答えて

6

解決策は、カスタムルートに名前を追加することです。

$router->addRoute(
    'settingsPage', //this is the name 
    new Zend_Controller_Router_Route('settings', 
             array('controller' => 'users', 
               'action' => 'edit')) 
); 

あなたのルート名を追加し、フロントエンドにそれを使用するために行く:

<li><a href="<?php echo $this->url(array('controller' => 'users', 'action' => 'edit'), 'settingsPage', true); ?>">Settings</a></li> 

+0

これは、それを修正していないようです。他のアイデア?しかし、提案をありがとう! – networkprofile

+0

あなたのルート/ URLビューヘルパーに正しいコントローラとアクションを含めるように私の例を編集しました。私はあなたと同じことをやっているので、これはうまくいくはずです。 – seanh

+0

コントローラー名にタイプミスがありましたが、これは機能します。ありがとう! – networkprofile

関連する問題