2

私が疑問に思っているのは、Yiiでモデルにある種のプロパティを追加して、プロパティisdeletedが設定されたアイテムのみ0が表示されるようにすることは可能ですか?

だから私は方法を探しています.Yiiはアイテムのこれらのインスタンスを無視します...次のようなもの:

public function rules()
{
    return array(
        ...
        array('isdeleted', 'shouldEqualTo=>0'),
        ...
    );
}

いじるのも一案かと思っrules()たのですが、うまくいかなかったり、やり方が間違っていたり…

4

2 に答える 2

5

そのためには scopes() を使用する必要があります。

public function scopes()
{
    return array('active' => array('condition' => 'isdeleted = 0'));
}

それで

$active = MyModel::model()->active()->findAll();

編集:

フィルターをデフォルトにしたい場合は、defaultScope()関数を実装します。

public function defaultScope()
{
    return array('condition' => 'isdeleted = 0');
}
于 2014-08-12T10:23:06.757 に答える
1

私が調べたことを知っていたWBの回答のおかげで、WBが行ったようにscopes使用できます。scopes

public function scopes()
{
    return array('active' => array('condition' => 'isdeleted = 0'));
}

そして使用する

$active = MyModel::model()->active()->findAll();

プロジェクトのコードを変更したくない場合 (私のように)、次を使用できます。

public function defaultScope()
{
    return array(
        'condition' => 'isdeleted = 0',
    );      
}

そして使用する

$active = MyModel::model()->findAll();
于 2014-08-12T11:58:04.957 に答える