4

CakePHP 2.0 でのモデルのテストに問題があり、モデルのコンストラクターに問題があるようです。

public function __construct(){
    parent::__construct(); 
    $this->_pagi_cuantos = 2;
}

すべてのコンテンツを削除しても、テストを実行しようとすると問題が発生します。

マーク・ストーリーは私にこう言いました:

コンストラクターがある場合は、コンストラクターを正しくオーバーライドしていることを確認してください。そうしないと、このようなエラーが発生します。

私は何を間違っていますか?

4

3 に答える 3

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);
}
于 2012-04-14T13:28:28.963 に答える
6

コンストラクターをオーバーライドするのではなく、コントローラーに beforeFilter() を使用するか、モデルに beforeFind() や beforeValidate() などの before メソッドを使用するのはどうでしょうか。

于 2012-11-05T22:16:03.983 に答える
1

私が見つけた1つの方法は、次のようなことです:

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

これにより、親が何を渡されるかを心配する必要がなくなります。そのコードはかなり恐ろしいですが。

于 2013-08-28T20:04:07.880 に答える