1

たとえば、デフォルトモジュール内でzendコントローラーの名前とアクションの間に大文字のアルファベットを使用すると、作成します

class MyGoodController extends Zend_Controller_Action {

public fooBarAction()
{

}

}

このアクション ブラウザの URL にアクセスするよりも、mysite.com/my-good/foo-bar のようになります

この変換を管理する zf 内に追加されたデフォルトの zend ルーターはありますか? URLビューヘルパーを使用して正しいリンクを生成したいので、たとえばビューではそうではありません

$this->url(array('action'=>'fooBar','controller=>'myGood')); 

/myGood/fooBa代わりにrを生成する正しいURLを生成しませんでした/my-good/foo-bar

4

1 に答える 1

1

コメントに記載されているように、次を使用する必要があります。

$this->url(array('action'=>'foo-bar','controller=>'my-good'));

URL ビュー ヘルパーは、アプリケーションで設定されたルートに基づいてリンクを組み立てます。

ルートはURLに基づいてリクエストを照合します。

それは本当に懸念の分離に帰着します。ヘルパーはルートのみを使用しており、ルートは URL に含まれるもののみを処理します。ルートに基づいて適切なクラス名を取得することは、ディスパッチャーの関心事です。

ディスパッチャは変更される可能性があるため、URL にあるものだけを処理するルートを残すことをお勧めします。標準のディスパッチャーを使用して機能するものは、別のディスパッチャーを使用する他の人には適合しない場合があります。

あなたが求めていることを達成するために、変換を行うカスタムビューヘルパーをいつでも使用できますが、それはディスパッチャーを決して変更しないことを前提としています。

于 2011-08-03T19:27:05.620 に答える