zend framework 1.9中,resources.frontController.defaultModule配置是用于指定访问网站根目录module吗

seai 2010-01-05 02:41:50
为什么我的配置按如下,可以正常访问网站根目录http://localhost/,和http://localhost/acc/,等
resources.frontController.defaultModule = "default"
resources.frontController.defaultControllerName = "index"
resources.frontController.defaultAction = "index"

但是我想将acc设为默认module,网站就完全不能访问了
resources.frontController.defaultModule = "acc"
resources.frontController.defaultControllerName = "index"
resources.frontController.defaultAction = "index"

请高人详细指点,谢谢了!
...全文
254 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
tfling2012 2012-01-17
  • 打赏
  • 举报
回复
对呀 我今天也要解决这样的一个问题?该怎么解决呢?
seai 2010-01-09
  • 打赏
  • 举报
回复
已经找到解决办法,大家需要的话,到我空间去看.
zhangyong20081204 2010-01-08
  • 打赏
  • 举报
回复
学习了。这个是难点
seai 2010-01-05
  • 打赏
  • 举报
回复
能给代码吗?我不是php程序员,只是项目架构。。。只能想到思想不知道怎么写代码
zhongqixing1104 2010-01-05
  • 打赏
  • 举报
回复
默认的控制器类名是不能带前缀的,你一定要实现的话可以添加个路由指向你那个模块
seai 2010-01-05
  • 打赏
  • 举报
回复
那我倒要问了
resources.frontController.defaultModule = "default"
这个配置有啥用呢?如果都没办法指定别的模块/控制器,还给这个配置选项做什么?多此一举啊。我就是想把这个配置选项的功能发挥起来。
zhongqixing1104 2010-01-05
  • 打赏
  • 举报
回复
这样的话,将来我想改变首页,就只需要定义新的控制器,并在配置中指明就行了,而其他任何部分都不会受到影响。

改首页你如果不改数据的话,只要改view就可以了啊
seai 2010-01-05
  • 打赏
  • 举报
回复
我觉得关键就在于:
uri,控制器文件名,控制器类名,之前的对应关系,把握好对应关系,应该可以找出解决办法的。

比如,默认模块要求的控制器处于什么目录,控制器的类名是什么,应在哪个php文件中定义(即文件名)?非默认模块有什么怎样规定的?
seai 2010-01-05
  • 打赏
  • 举报
回复
我试过了,发现一个特点,就是如果配置中改变默认模块为acc的话,我需要将acc目录中的控制器类名的前缀去掉,类名Acc_IndexController变为IndexController,这样的话,也是可以的,但如此一来,就还是需要修改程序代码了,而我不希望改变默认模块还得修改程序。

有没有办法解决这个不方便的地方呢?

难道是说,按照zf来,默认模块的控制器类名,不能有前繈,而非默认模块的控制类名必须有前缀?
zhongqixing1104 2010-01-05
  • 打赏
  • 举报
回复
设置controller目录的配置你没改
zhongqixing1104 2010-01-05
  • 打赏
  • 举报
回复
不对,你这样是不行的。
zhongqixing1104 2010-01-05
  • 打赏
  • 举报
回复
没道理啊,你那样配置应该是可以的啊
seai 2010-01-05
  • 打赏
  • 举报
回复
我想实现在配置中灵活指定默认的模块的功能。

现在目录结构如下:
mysite/
app/
default/
controllers/
IndexController.php--定义IndexController类
acc/
controllers/
IndexController.php--定义Acc_IndexController类

按照目前的设置,当访问http://localhost/时,会执行IndexController类的index方法,访问http://localhost/acc时,会执行Acc_IndexController类的index方法。

现在的需求是,希望通过简单改变配置,使得访问http://localhost/时执行Acc_IndexController类的index方法。其他情况保持不变。这样的话,将来我想改变首页,就只需要定义新的控制器,并在配置中指明就行了,而其他任何部分都不会受到影响。
zhongqixing1104 2010-01-05
  • 打赏
  • 举报
回复
defaultModule 是配置默认的模块的,即http://localhost/这样默认访问的模块,不知道你网站是怎么部署的

4,251

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧