大家好,本人干运维的,php不太会,由于之前一个同事帮公司做了一个DNS管理后台,用的是cakephp框架,现在由我来接受新增2个模块,具体我现在做的修改主要在3个地方一、View里面的layouts里的一个相当于主页的地方,具体路径是app/views/loyouts/dns.ctp里面我想新加一行代码做一个链接跳到另一个子页面中以前的代码是:<li><?php echo $html->link('add',array('controller' => 'dns','action'=>'add'),array('title'=>'add','class'=>'hide'),'',flase);?></li>而我现在想改成2个功能,修改后的代码如下:<ul>
<li><?php echo $html->link('add1',array('controller' => 'dns','action'=>'add1'),array('title'=>'add1','class'=>'hide'),'',flase);?></li>
<li><?php echo $html->link('add2',array('controller' => 'dns','action'=>'add2'),array('title'=>'add1','class'=>'hide'),'',flase);?></li>
</ul>
二、修改这2个链接调用的子页面,路径是app/views/dns/ 名字分别为add1.ctp和add2.ctp三、修改controller中的一个文件,里面以前有一个function add,我现在把这个注释掉了添加了一个function add1和function add2,内中是逻辑的实现。现在问题来了,我放在web服务器上运行之后,首页的add1和add2 2个按钮能出来,但是点击之后提示我“Error:The requested address ‘add1’was not found on this server”。
然后我找了他的工程下面的所有文件,看了里面的内容,均未发现有关这些页面跳转的控制,难道cakephp这么智能吗?通过一个controller->'dns',就能找到controller,但是那个controller的文件名并不是dns,而是dns_controller.php。又或者是当初他是用Bake生成的这些文件,然后做的修改?逻辑代码我懂一点,但是如何使用框架,并且实现其中的跳转以及方法调用,我就不太清楚了,所以在这里像各位php大神们求助一下,指导一下这个cake中的每个层的调用以及跳转。在这里提前说一声谢谢。 ^_^

解决方案 »

  1.   

    用框架不要被框架束缚了,cakephp中的控制器有一个name = ''属性可以制定这个控制器被外部访问的名称,网页跳转不要用cake自带的那种跳转,自己写a标签更好,比如你说的这个,完全可以写成<a href="dns/add1"></a>是不是更简便,更容易理解呢!出错了,你也好找出问题在哪儿,cake那种你都没搞清楚,出错了,你也不知道出哪儿找!
      

  2.   

    补充一下a标签的href="/dns/add1",丢了个斜杠