Zend framework Zend框架是';使用路由器时,不要寻找驼峰式动作

Zend framework Zend框架是';使用路由器时,不要寻找驼峰式动作,zend-framework,camelcasing,zend-controller-router,Zend Framework,Camelcasing,Zend Controller Router,嗨,伙计们,我有点麻烦,希望有人能解释一下 出于某种奇怪的原因,我的路线显示action不存在,除非我将该actions名称的camel大小写改为all小写,然后它就可以正常工作了。但这违反了命名惯例!我也不想让我的代码变得马虎 这是我的路线: $FrontController = Zend_Controller_Front::getInstance(); $Router = $FrontController->getRouter(); $Router->addRoute("arti

嗨,伙计们,我有点麻烦,希望有人能解释一下

出于某种奇怪的原因,我的路线显示action不存在,除非我将该actions名称的camel大小写改为all小写,然后它就可以正常工作了。但这违反了命名惯例!我也不想让我的代码变得马虎

这是我的路线:

$FrontController = Zend_Controller_Front::getInstance();
$Router = $FrontController->getRouter();
$Router->addRoute("artistsave",
    new Zend_Controller_Router_Route
    (
        "artist/save-artist",
        array(
        "controller"=>"artist",
        "action"    =>"saveArtist"
        )
    )
);
现在对我来说,这应该在ArtistController中查找操作saveArtistsAction,但它没有,它抛出了以下错误:

哎哟,你遇到下面的人了 错误。动作“saveartist”没有 存在并且未被困在_call()中

因此,它似乎已经删除了路由器中我的驼峰外壳,因为a for Artister现在在错误中的大小写较低,如果我重命名我的操作以匹配它,它就会工作

你知道为什么不找saveArtist吗

我意识到我可以将它重命名为“保存”,因为它是艺术家对象的一部分,但现在我发现了这一点,我希望在将来的某个时候解开它之前能够理解

提前感谢您的帮助:)


没有,我一发这封信就明白了,但我觉得其他人可能也会犯同样的错误,所以最好把这封信留在这里,告诉他们解决办法

在路由器中,它仍然是URL格式,我打算使用连字符,而不是驼峰式大小写,然后框架会解决它。下面是我的更正/解决方案:

$Router->addRoute("artistsave",
    new Zend_Controller_Router_Route
    (
    "artist/save-artist",
    array(
            "controller"=>"artist",
        "action"    =>"save-artist"
    )
    )
);

快乐编码:)

命名约定规定您的操作应全部以小写字母命名,直到“Action”一词为止

因此,命名操作的正确方法是:

saveartistsAction()

一些不符合MethodingElseAction()的内容

(相关)