Zend Newbie问题与控制器

时间:2012-09-08 22:37:12

标签: zend-framework controller

我有一个有效的前置控制器。我写了一个名为AuthController.php的登录控制器。它配置了适当的代码。我的问题是当我去/ auth我得到404.这似乎是某种路由问题。

我的auth控制器名为AuthController.php,它的上半部分如下所示:

class AuthController extends Zend_Controller_Action
{
public function init()
{
    /* Initialize action controller here */
}


public function indexAction()
{
    $form = new Application_Form_Login();
    $request = $this->getRequest();
    if ($request->isPost()) {
        if ($form->isValid($request->getPost())) {
            if ($this->_process($form->getValues())) {
                // We're authenticated! Redirect to the home page
                $this->_helper->redirector('index', 'index');
            }
        }
    }
    $this->view->form = $form;
}

当然下面还有受保护的功能来处理其他事情。在Zend中,当你创建一个新的控制器时,它的存在(如在CodeIgniter中)是否意味着它应该可用?或者我是否必须将其添加到某个路由表中?

编辑:这是我的Apache Vhost配置:

<VirtualHost *:80>
ServerName      new.mydomain.com
DocumentRoot    /www/htdocs/zend/public
<Directory /www/htdocs/zend/public>
  DirectoryIndex index.php
  AllowOverride All
  Order allow,deny
  Allow from all
</Directory>
</VirtualHost>

3 个答案:

答案 0 :(得分:1)

尝试创建另一个控制器或testController,然后尝试访问like / test如果它出错,则可能存在问题。如果它有效,则更改您的Auth控制器并使用不同的类名称命名

答案 1 :(得分:1)

我自己是zend的新手,根据我的经验,404错误已经发生

未配置htaccess(如评论中的Keyne所述)

没有与控制器/操作关联的视图,或者它完全不是由我创建的,或者文件夹/动作/视图文件名中存在某种错字。

因此,请确保不是上述情况。

答案 2 :(得分:1)

  1. 确保您启用了mod_rewrite(如果在Apache上)
  2. 确保AuthController.php文件位于默认模块中(与您相同) 将你的IndexController.php放入)
  3. 检查在Apache中设置的httpd.conf文件是否允许覆盖(因此htaccess可以工作) - 如果使用带有debian squeeze的debian框,这可能是apache.conf - 虽然不确定其他linux类型。
  4. 如果所有这些都是正确的那么它应该可以正常工作。