欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

zf框架框架除了首页外其他action都不能访问,请诸位高手帮忙,很急!

程序员文章站 2022-04-20 11:41:00
...
如题,因公司要求,要用php zend framework框架。我是初次接触zf框架。
我用了xampp1.8 配置了环境,用了zend studio for eclips 开发工具
我建了一个新项目,配置了虚拟目录如下:
hosts文件
127.0.0.1 yt.local
127.0.0.1 www.yt.local

httpd-vhosts.conf文件

ServerName localhost
DocumentRoot "D:\xampp\htdocs"



ServerName yt.local
ServerAlias www.yt.local
DocumentRoot "D:\xampp\htdocs\testagain\public"

一下是项目目录结构


indexcontroller.php
namespace Application\Controller;

use Zend\Mvc\Controller\AbstractActionController;
//use Zend\Crypt\PublicKey\Rsa\PublicKey;
//use Zend\View\Model\ViewModel;

class IndexController extends AbstractActionController
{
public function indexAction()
{
echo "hello php ?";
}

public function AddAction()
{
echo "Add list here !";
}
}
?>
问题是不能访问Add.phtml这个页面。只能访问http://yt.local这个页面,其他的都不能。 琢磨了好几天都没能解决。请各位高手帮帮忙吧。感谢万分!
在线等待高手出现!


回复讨论(解决方案)

打开Apache的配置文件httpd.conf确保你已经开启如下模块:
LoadModule rewrite_module modules/mod_rewrite.so
继续查找httpd.conf文件,如果AllowOverride为None的话,请一定把None都改成all

打开Apache的配置文件httpd.conf确保你已经开启如下模块:
LoadModule rewrite_module modules/mod_rewrite.so
继续查找httpd.conf文件,如果AllowOverride为None的话,请一定把None都改成all

都改了,总共有三个地方,全都该了。还是一样。

难道就没人回答吗?

救命啊! zend frameword 难道就没人会的吗?

是的,没用过 zend frameword
不过有几点需要注意:
1、你访问的是 http://yt.local/xxxx,即 public 目录下的 index.php 文件
网站所有的功能都是由这个 index.php 路由的
2、所有的框架都是以入口文件为基准向下查找嵌入文件的(除非你特别指定)

建议还是在代码中去检查下吧,知道了zf的原理,检查下去也不难。

看错误日志,肯定你哪里写错了。要么就是配置的问题

文档里的.htaccess抄过去了吗?

文档里的.htaccess抄过去了吗?
是抄过去了。还是不行。现在只能访问indexAction,其他的action都不行。郁闷死了。

你用的xampp环境,应该是在windows下吧?

你试试这样访问:http://yt.local/index.php/add

zf控制器里面的方法(action)书写规则 第一个字母不能大写

补充说明下吧 controller中的action名字是 addAction 视图层view中对应的就只能是add.html
如果视图层是user-add.html 那么控制器中的Action 就应该写成userAddAction.这是ZF中的书写规则。Action的第一个字母不能大写。

你用的xampp环境,应该是在windows下吧?

你试试这样访问:http://yt.local/index.php/add

可以这样访问,但是我不知道是什么原因?请大侠指教。