PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

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

原创
2016-06-23 14:10:19 697浏览

如题,因公司要求,要用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

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

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。