如何覆盖模型';在CakePHP中正确使用s构造函数

如何覆盖模型';在CakePHP中正确使用s构造函数,cakephp,testing,constructor,overwrite,Cakephp,Testing,Constructor,Overwrite,我在CakePHP2.0中测试模型时遇到问题,问题似乎出在模型的构造函数上 public function __construct(){ parent::__construct(); $this->_pagi_cuantos = 2; } 即使我删除了它的所有内容,我仍然在尝试运行测试时遇到问题 Mark Story告诉我: 如果您有一个构造函数,请确保您正在重写该构造函数 正确地如果不这样做,将导致类似这样的错误 我错了什么?为什么不研究一下核心代码 毕竟它是开源的:

我在CakePHP2.0中测试模型时遇到问题,问题似乎出在模型的构造函数上

public function __construct(){
    parent::__construct(); 
    $this->_pagi_cuantos = 2;
}
即使我删除了它的所有内容,我仍然在尝试运行测试时遇到问题

Mark Story告诉我:

如果您有一个构造函数,请确保您正在重写该构造函数 正确地如果不这样做,将导致类似这样的错误


我错了什么?

为什么不研究一下核心代码 毕竟它是开源的:

因此,对于您的所有型号:

public function __construct($id = false, $table = null, $ds = null) {
    parent::__construct($id, $table, $ds);
}

与其重写构造函数,不如对控制器使用beforeFilter()或对模型使用beforeFind()、beforeValidate()等before方法。我发现的一种方法是这样做:

function __construct() {
    call_user_func_array(array('parent', '__construct'), func_get_args());
}

它让你不必担心父母通过了什么。尽管这段代码相当可怕。

会发生什么?如果你需要帮助,你必须给我们更多的东西继续下去……好吧,发生的事情应该是无关紧要的。但是如果您想知道:testCase没有很好地选择数据库。当它应该与测试一个一起工作时,它与默认一个一起工作。(顺便说一句,我已经更新了帖子)所有版本的CakePHP都存在这个问题。我在1.3中也遇到了同样的问题,这在CakePHP2.0API文档中也有提到