Zend框架:除了控制器中的索引操作之外,没有其他操作是可调用的


Zend framework : no other Action except index action in the controller is callable

我有一个包含两个操作的控制器文件,即:

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)
相关文章: