我有一个包含两个操作的控制器文件,即:
class IndexController extends Zend_Controller_Action
{
public function init()
{
/* Initialize action controller here */
}
public function indexAction()
{
// action body
}
public function doLoginAction()
{
// action body
}
}
及其相应的视图文件。即当我点击 http://www.mydomain.com/index 时,它会加载索引视图。我面临的问题是,当我尝试访问此控制器的索引操作时,它将加载相应的视图,但是当我尝试点击 dologin 操作时,它会给出错误
http://www.mydomain.com/index/dologin
*消息:"dologin"操作不存在,并且未被困在__call()
* 中*请求参数:
array (
'controller' => 'index',
'action' => 'dologin',
'module' => 'default',
)
当我尝试使用另一个控制器和操作时,也会发生同样的情况。索引操作对于该控制器也运行良好,但控制器中的任何其他操作都运行良好。
PS:我已经在apache配置文件中配置了mod_rewrite模块和允许覆盖全部
驼
峰大小写的动作名称应作为参数虚线。因此,doLoginAction() 将响应/default/index/do-login,而不是 dologin。如果您希望 URL 是 dologin,则应将操作重命名为 dologinAction()。
您也可以在控制器级别使用连字符 (-) 分隔的 URL。
假设你需要一个这样的网址:
http://www.mydomain.com/do-some-stuff/my-stuff/
然后,您的控制器应命名为:
DoSomeStuffController (as class name) && DoSomeStuffController.php (as controller file name)
和
myStuffAction() (as your method name)