我来自codeIgniter,但是要实习,我必须使用cakePHP调试正在进行的网站。
我对mvc熟悉,但是目前仍然无法使用,甚至在搜索后也找不到任何解决方案。
我想要的是能够在控制器中调用一个函数(使用codeIgniter轻松完成任务),但是在调试过程中,我注意到控制器被调用了,但没有调用该函数:
<?php
App::uses('AppController', 'Controller');
class FournisseursController extends AppController { //debug stop here
public $helpers = array('Html', 'Form');
public function index() {
$this->set('Personnes', $this->Fournisseur->find('all'));
}
public function addFournisseur() {
//contain some code , but not usefull for this problem
}
}
}
?>
在第二行之后,将显示关联的视图(总是显示一个视图是一个很奇怪的概念,但是我想蛋糕php可以这样工作)。 和调试甚至都不会在目标功能上开始。
我从视图中称呼它:
<form action="../../Fournisseurs/addFournisseur" method="post">
<input type="submit">
</form>
我知道从视图中调用控制器并不是很好,但是在那种情况下,我需要用户输入一些数据以将其发送到数据库中,我不知道其他任何方式。 我已经阅读了有关控制器的文档,但没有帮助。
最后一件事,如果我更改控制器中函数的名称,则不会调用该控制器:一条错误消息说明该方法不存在(因此,对于我来说,控制器知道我要调用该函数,因为控制器需要它来运行)。
这是我坚持这一天的日子,我很确定这是一个愚蠢的错误。 即使您没有回答,也感谢您阅读本文,也很抱歉,如果我犯了任何英语错误,这是我的第一篇文章,而且我不是母语人士。
答案 0 :(得分:0)
我只是依赖Xdebug,尽管断点没有在函数中停止,所以我认为它不是被调用(函数和其中的代码),而是借助debug($data)
函数断点起作用了,我得以继续对该函数进行调试。
我不知道为什么Xdebug会采取这种方式,但我现在不会仅仅依靠它。
感谢所有帮助的人,我现在可以继续前进!
答案 1 :(得分:0)
您还可以使用如下所示的Form helper,在其中可以定义contoller和操作名称:
<?php echo $this->Form->create('Fournisseur', array('url' => array('controller' => 'Fournisseurs', 'action' => 'addFournisseur'))); ?>
// Form elements
<?php echo $this->Form->end(); ?>