2009-08-13 25 views
3

zend framework 1.9.1で私の冒険を始めましたが、いくつか問題が発生しました。私は、異なるURLで同じコンテンツを表示するようなときには、デフォルトのルートを削除したい - achiveに私はZFルーティングの問題

<?php 

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap 
{ 
    protected function _initMyRouter() 
    { 
     $this->bootstrap('router') 
      ->getContainer() 
      ->frontcontroller 
      ->getRouter() 
      ->removeDefaultRoutes(); 
    } 
} 

が、その後、一つの問題が発生bootstraperでカスタム関数を書いた - すべての無効なURLの代わりに、コントローラをデフォルトに達しますエラーコントローラ。この問題を解決するために、私はこの問題を回避するために resources.frontController.defaultcontrollername =「エラー」 resources.frontController.defaultaction =「スロー」のapplication.iniで とのErrorControllerで

public function throwAction() 
{ 
    throw new Zend_Controller_Dispatcher_Exception; 
} 

を置くが、私の質問は..です私は何か間違っているのですか?

2番目の問題は絶対URLだけを生成する必要があるため、application.iniにresources.frontController.baseurl = "http://mydomain.com/"を追加した後、すべてのURLがデフォルトのコントローラを指していることです。それを修正するには?

3番目(最後)は...私のアクションでZend_Controller_Action_Helper_Url :: urlを呼び出す方法は?私は$ this - > _ helper-> url(array()、 'frontpage')のようなものを試しましたが、Zend_Controller_Action_Helper_Url :: directを呼び出します。

答えて

1

私は頭の上から。

私は通常$this->view->url(array(...), 'routeName', true);を使用します。最後の引数はパラメータをリセットします。私は、ビューヘルパーがアクションヘルパーより少し簡単にタイプすることが分かりました。私は$this->_helper->url->url(...)が行動ヘルパーに到達する適切な方法だと思うが。

私は決してデフォルトルートを削除しませんでしたが、その日の後半に他の回答がない場合は、就業時間後にいくつかのテストを行うために最善を尽くします。