蛋糕php调用函数,但控制器不会执行它

时间:2019-02-06 14:51:25

标签: php cakephp

我来自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>

我知道从视图中调用控制器并不是很好,但是在那种情况下,我需要用户输入一些数据以将其发送到数据库中,我不知道其他任何方式。 我已经阅读了有关控制器的文档,但没有帮助。

最后一件事,如果我更改控制器中函数的名称,则不会调用该控制器:一条错误消息说明该方法不存在(因此,对于我来说,控制器知道我要调用该函数,因为控制器需要它来运行)。

这是我坚持这一天的日子,我很确定这是一个愚蠢的错误。 即使您没有回答,也感谢您阅读本文,也很抱歉,如果我犯了任何英语错误,这是我的第一篇文章,而且我不是母语人士。

2 个答案:

答案 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(); ?>