5

アクション名のZend標準はcamelCaseですが、キャメルケースを使用してアクションを作成すると、キャメルケースなしでメソッド(アクション)を呼び出そうとするため、リクエストは失敗します。

例:

モジュール「abc」に「changeEmail」という名前のアクションがあります。メソッドは「changeEmailAction」(Zend Toolによって作成された)です。/ abc / changeEmailにアクセスしようとすると、「メッセージ:アクション "changeemail"は存在せず、__ call()にトラップされませんでした」というエラーが返されます。

私がそれを機能させることができた唯一の方法は、すべて小文字でアクション名を作成することだけです。これはひどい読みやすさをもたらし、提案された命名規則に反します。私は何が欠けていますか?

4

3 に答える 3

19

Zend Framework アクション コントローラー/ルーターのデフォルトの動作は、単語をダッシュ​​で区切って、すべて小文字の URL 命名スキームを適用することです。

http://example.com/controller/my-thing

この URL がアクション名に変換されると、キャメル ケーシングが適用されます。

public function myThingAction()
{
}

キャメルケースの URL が本当に本当に必要な場合は、カスタムZend ルーターを使用してアプリケーションを構成することを検討する必要があります。

于 2010-08-06T18:07:33.010 に答える
3

私はこれに対する答えを見つけました:

URLで、複数単語のアクション名の場合、単語をハイフンで区切る必要があります。

/ abc/change-メール

コントローラでメソッド「changeEmailAction」を呼び出します。

于 2010-07-22T22:43:08.937 に答える
1

URLには、ハイフンで区切られた名前を使用する必要があります/abc/change-email

于 2010-07-22T22:43:35.427 に答える