Zend framework mvc zend框架简单动作问题

Zend framework mvc zend框架简单动作问题,zend-framework-mvc,Zend Framework Mvc,我正在用Zend服务器在Zend MVC中创建一个hello world项目。有些人认为路线是错误的。我使用zend_工具zf.sh create project创建了该项目,因此它会自己创建所有目录,我将其修改为indexController以尝试以下操作,所有其他文件也会这样做 <?php class IndexController extends Zend_Controller_Action { public function init() { /

我正在用Zend服务器在Zend MVC中创建一个hello world项目。有些人认为路线是错误的。我使用zend_工具zf.sh create project创建了该项目,因此它会自己创建所有目录,我将其修改为indexController以尝试以下操作,所有其他文件也会这样做

<?php

class IndexController extends Zend_Controller_Action
{

    public function init()
    {
        /* Initialize action controller here */
    $this->_helper->viewRenderer->setNoRender();
    }

    public function indexAction()
    {
        // action body
    $this->getResponse()->appendBody('hello from about Action');
    }

    public function aboutAction()
    {
    $this->getResponse()->appendBody('hello from about Action');
        // action body
    }


}

我想这正是错误信息所说的,那就是你需要一个控制器,用于
关于
,而你没有。在url
http://localhost/index.php/about
关于
将是一个完全独立的控制器,您需要建立。

我认为这正是错误信息所说的,即您需要一个控制器,用于
关于
,而您没有。在url
http://localhost/index.php/about
关于
将是您需要建立的一个完全独立的控制器。

  • localhost/index.php
    应转到
    index
    控制器,默认情况下,
    index
    操作
    (index,index)
  • localhost/index
    还应转到
    (index,index)
  • index.php/about
    我希望转到
    (about,index)
    ,即
    关于
    控制器和
    index
    操作,但我可能错了(我没有测试这个)
  • 如果您想转到
    (index,about)
    ,您可以转到
    localhost/index/about
您似乎已经正确定义了about action
公共函数aboutAction
,因此应该可以正常工作。 如果您希望能够转到localhost/about或localhost/about/index,则需要定义一个about控制器,如
类AboutController extensed Zend\u controller\u Action
,就像您为
IndexController
所做的那样

--编辑-- 此外,请确保.htaccess的最小值如下所示:

DirectoryIndex index.php

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]
  • localhost/index.php
    应转到
    index
    控制器,默认情况下,
    index
    操作
    (index,index)
  • localhost/index
    还应转到
    (index,index)
  • index.php/about
    我希望转到
    (about,index)
    ,即
    关于
    控制器和
    index
    操作,但我可能错了(我没有测试这个)
  • 如果您想转到
    (index,about)
    ,您可以转到
    localhost/index/about
您似乎已经正确定义了about action
公共函数aboutAction
,因此应该可以正常工作。 如果您希望能够转到localhost/about或localhost/about/index,则需要定义一个about控制器,如
类AboutController extensed Zend\u controller\u Action
,就像您为
IndexController
所做的那样

--编辑-- 此外,请确保.htaccess的最小值如下所示:

DirectoryIndex index.php

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]

但我希望服务器将索引解释为控制器,大约解释为操作。@Nissan911,我明白你为什么会这样想。但是,Zend正在寻找上述格式的
about
控制器。但我希望服务器将索引解释为controller about as action。@Nissan911,我明白您为什么会这样想。但是,Zend正在寻找上述格式的
about
控制器。找不到本地主机/索引->页面。localhost/index/about server解释为about controller,这完全不是我的意思。您使用的是哪台web服务器?如果是Apache,您是否正确配置了.htaccess?用于ubuntu的zend服务器。apache2See my edit。。您需要在公共目录中有一个.htaccess文件(假定为标准ZF结构),该文件如下所示this@manyxcxiIndexController是否限制Zend中的操作?我从来没有真正想过它,但你不能像我所说的那样真的给它添加动作(我想是吧?)。找不到本地主机/索引->页面。localhost/index/about server解释为about controller,这完全不是我的意思。您使用的是哪台web服务器?如果是Apache,您是否正确配置了.htaccess?用于ubuntu的zend服务器。apache2See my edit。。您需要在公共目录中有一个.htaccess文件(假定为标准ZF结构),该文件如下所示this@manyxcxiIndexController是否限制Zend中的操作?我从来没有真正想过它,但你不能真的给它添加动作(我想是吧?)