2

複数のコントローラーがあるので、Cakephp1.3を使用しています

、スコア、スタンデットなど。

スコアでは、条件が異なる複数の関数があります。必要なのは、フィルター関数の前に、フィールドis_deleted=0のみを表示するロジックを追加することです。

私はこのコードを試しています

$this->Score->Student->conditions='Student.is_deleted=>0';

すべての条件を通過するので、すべての機能は時間がかかりすぎる

上記のコードは機能していません。フィルタを追加したいので、プロジェクト全体で作業します

誰もがアイデアを持っています

ありがとう

4

1 に答える 1

0

条件ロジックをメソッドに配置する代わりに、モデルでbeforeFind()メソッドを使用する必要があります。StudentbeforeFilter()

このコードを次のように記述しStudent Modelます。

function beforeFind($queryData)
{
    if (!isset($queryData['conditions'])) {
        $queryData['conditions'] = array();
    }       
    $queryData['conditions'][$this->alias.'.is_deleted'] = '0';       
    return $queryData;
}

この投稿は、同じことを達成するのにも役立つかもしれません。

BehaviorCallbacksを使用することもできます。

それがあなたのために働くことを願っています。

于 2012-08-23T05:47:53.593 に答える