0

サイトがディレクトリの下で実行されているときに、Zend Router に適切な URL をアセンブルさせるにはどうすればよいですか?

これが私が意味することです:

$this->view->url(array('controller' => 'controller', 'action' => 'action'), null, true)

サイトはディレクトリで実行されているため、通常は/controller/actionwhere in my case it returns のようなものを返します。/tbogdanov/brandenburg/controller/action/tbogdanov/brandenburg

これは実際には適切な URL であり、問​​題はありません。$this->_redirect()ただし、リダイレクタに渡されると、ディレクトリが再び先頭に追加されます。したがって、最終的なリダイレクト URL は次のようになります/tbogdanov/brandenburg/tbogdanov/brandenburg/controller/action

さて、それは間違っています。

不足している可能性のある設定はありますか?zend はディレクトリ/サブディレクトリで実行されていることを認識しているようですが、それでもある時点でそれを無視します。私は良い一般化された解決策を探していstr_replaceます。

また、ある時点でプロジェクトがルート ディレクトリに移動された場合でも、メソッドは適切に機能するはずです (そうなります)。

4

2 に答える 2

2

の 2 番目のパラメーターは_redirect()、オプションを構成します。追加array('prependBase' => false)して再試行してください。

于 2012-10-03T15:03:24.190 に答える
0

リンク作成のためのより多くのオプションがあるリダイレクタ オブジェクトを使用してみてください

http://framework.zend.com/manual/1.12/en/zend.controller.actionhelpers.html#zend.controller.actionhelpers.redirector

    // Redirect to 'my-action' of 'my-controller' in the current
    // module, using the params param1 => test and param2 => test2
    $this->_redirector->gotoSimple('my-action',
                                   'my-controller',
                                   null,
                                   array('param1' => 'test',
                                         'param2' => 'test2'
                                         )
                                   );
于 2012-10-03T15:09:17.487 に答える