大家好我有一点麻烦,希望有人可以对此有所了解。
由于一些奇怪的原因,我的路线出现说不存在动作,除非我将骆驼套管更改为该动作名称的所有小写,然后它工作正常。但那违背了命名惯例!而且我也不想让我的代码变得草率。
继承我的路线:
$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现在是错误的小写,如果我重命名我的动作以匹配它,它可以工作!
任何想法都是为什么它不寻找saveArtist?
我意识到我可以重命名它以保存,因为它是艺术家对象的一部分,但现在我已经发现了这一点,我希望在未来的其他时间再解开之前了解它。
提前感谢任何帮助:)
我发出这封信后,我发现了这一点,但我觉得其他人可能因为同样的错误而堕落,所以最好把它留在这里告诉解决方案!
在路由器中,它仍处于URL格式化中我的意思是使用连字符而不是驼峰套管然后框架将其解决。所以这是我的更正/解决方案:
$Router->addRoute("artistsave",
new Zend_Controller_Router_Route
(
"artist/save-artist",
array(
"controller"=>"artist",
"action" =>"save-artist"
)
)
);
快乐编码:)
答案 0 :(得分:-1)
命名约定指定您的操作应全部小写,直到单词“Action”。
所以命名行动的正确方法是:
saveartistsAction()
somethingthatdoessomethingelseAction()