Zend framework Zend框架是';使用路由器时,不要寻找驼峰式动作
嗨,伙计们,我有点麻烦,希望有人能解释一下 出于某种奇怪的原因,我的路线显示action不存在,除非我将该actions名称的camel大小写改为all小写,然后它就可以正常工作了。但这违反了命名惯例!我也不想让我的代码变得马虎 这是我的路线: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
$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()的内容(相关)