大家好,我有点麻烦,希望有人能对此有所了解。
出于某种奇怪的原因,我的路线出现说动作不存在,除非我将骆驼外壳更改为该动作名称的所有小写字母,然后它可以正常工作。但这违反了命名约定!我也不想让我的代码马虎。
这是我的路线:
$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"
)
)
);
快乐编码:)