我在CakePHP 2.0中测试Model时遇到了麻烦,似乎问题在于模型的构造函数。
public function __construct(){
parent::__construct();
$this->_pagi_cuantos = 2;
}
即使我删除了所有内容,我仍然在尝试运行测试时遇到问题。
马克故事告诉我:如果你有一个构造函数,请确保你重写了构造函数 正确。如果不这样做会导致这样的错误。
我错了什么?
答案 0 :(得分:20)
为什么不研究核心代码 毕竟它是开源的: https://github.com/cakephp/cakephp/blob/2.1/lib/Cake/Model/Model.php#L653
所以对于你的所有模特:
public function __construct($id = false, $table = null, $ds = null) {
parent::__construct($id, $table, $ds);
}
答案 1 :(得分:6)
而不是覆盖构造函数,如何为控制器使用beforeFilter()或使用模型的before方法,如beforeFind(),beforeValidate()等。
答案 2 :(得分:1)
我发现的一种方法是做这样的事情:
function __construct() {
call_user_func_array(array('parent', '__construct'), func_get_args());
}
它允许您不必担心父传递的内容。虽然那段代码很可怕。