5

动作名称的 Zend 标准是 camelCase,但是如果我创建一个带有驼峰大小写的动作,请求会失败,因为它试图在没有驼峰大小写的情况下调用方法(动作)!

例子:

我在模块“abc”中有一个名为“changeEmail”的操作。方法是“changeEmailAction”(由 Zend Tool 创建)。如果我尝试访问 /abc/changeEmail,我会收到一条错误消息,提示“消息:操作“changeemail”不存在并且没有被困在 __call() 中”。

我能够使它工作的唯一方法是只创建全小写的动作名称。这使得可读性很差,并且与建议的命名约定背道而驰。我错过了什么?

4

3 回答 3

19

Zend Framework Action Controller/Router 的默认行为是强制使用全小写的 URL 命名方案,用破折号分隔单词。

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

当此 URL 被翻译成动作名称时,将应用驼峰式大小写。

public function myThingAction()
{
}

如果你真的真的很想要骆驼大小写的 URL,你应该考虑使用自定义Zend 路由器配置你的应用程序

于 2010-08-06T18:07:33.010 回答
3

我找到了答案:

在 url 中,对于多单词的动作名称,必须用连字符分隔单词,即

/abc/更改电子邮件

将在控制器中调用方法“changeEmailAction”。

于 2010-07-22T22:43:08.937 回答
1

您应该在 URL 中使用连字符分隔的名称,例如/abc/change-email.

于 2010-07-22T22:43:35.427 回答