问题
I have troubles with testing Model in CakePHP 2.0 and it seems the problem is on the model's constructor.
public function __construct(){
parent::__construct();
$this->_pagi_cuantos = 2;
}
Even if I delete all its content, I still getting problems trying to run the test.
Mark Story told me:
if you have a constructor make sure you're overriding the constructor correctly. Failing to do so will cause errors like this.
What do I wrong?
回答1:
why don't you look into the core code its open source after all: https://github.com/cakephp/cakephp/blob/2.1/lib/Cake/Model/Model.php#L653
so for all your models:
public function __construct($id = false, $table = null, $ds = null) {
parent::__construct($id, $table, $ds);
}
回答2:
Rather than override the constructor, how about using beforeFilter() for controllers or the before methods for the Model such as beforeFind(), beforeValidate(), etc.
回答3:
One way that I found is to do something like this:
function __construct() {
call_user_func_array(array('parent', '__construct'), func_get_args());
}
It allows you to not have to worry about what the parent gets passed. Although that code is pretty hideous.
来源:https://stackoverflow.com/questions/10153841/how-to-override-models-constructor-correctly-in-cakephp