1

私は非常に複雑なデータ構造を持っています。結合テーブルのない10個のテーブルのようなものです。私のアプリケーションは、ほとんどのテーブルで検索を実行できる必要があります。

これを行うために、私は検索フィールドの内容を条件の配列に変換します。キーはモデル名、値は検索条件、つまり

$conditions = array(
        'Artist' => array(
                'OR' => array(
                    'Artist.name LIKE' => '%barl%', 
                    'Pseudonym.name LIKE' => '%barl%'
                    )
                ),
        'Content' => array('Content.subject' => 'architecture'),
        'Editor'  => array('Editor.name LIKE' => '%Gal%'),
        etc....
    )

この配列は検索可能なモデルに渡され、各モデルは関連する条件を取ります。

$this->find('all', array('conditions' => $conditions['Artist']))

これまでのところ、少なくとも私は思います。今、私はモデルのテストを開始しましたが、異なるモデルのテストケースで同じ配列を何度もコピーしていることに気づきました。

このアレイをすべてのテストケースにアクセスできるようにする方法はありますか?たぶん、配列は最良の解決策ではなく、検索モデルを作成する必要がありますか?

助言がありますか?

4

1 に答える 1

0

配列をプロパティとしてapp_model.phpに$commonSearchConditionsのようなものとして配置し、AppModelを継承するモデル内からそれらにアクセスします。

正確に何をするかに応じて、検索がすべてのモデルで異なる場合、すべてのモデルテストでテストケースがあります。そうでない場合は、実行したい検索機能だけをテストするために、テスト内に作成したテストモデルを使用して別のテストを作成することをお勧めします。詳細を知らずに言うのは難しい。

于 2011-04-05T13:14:46.607 に答える