1

AR クラスを特定のルールで拡張する 1 つのモデルがあります。しかし今、このテーブルに行を挿入する必要がありますが、他のルールがあります。新しいルールで別のモデルを作成する必要がありますか、それとも別のルールを定義することは可能ですか?

4

3 に答える 3

1

クラス (アクティブなレコード) を拡張している場合、実際には rules() 関数をオーバーライドすることができます。

class User extends ActiveRecord(){
    function rules(){
        return array(array(
            // Nomrally a rule
        ))
    }
}

そして、次のクラスを作成します。

class User_extended extends ActiveRecord(){
    function rules(){
        return array(array(
            // Nomrally a rule
        ))
    }
}

そして、それはそれである必要があります。次にクラスを呼び出すと、Yii がコンテキスト内のルールを取得して子クラスになるため、ルールUser_extendedが親クラスに適用されます。User$this$this

ただし、ここでシナリオを使用することもできますが、特に他のメソッドをオーバーライドする必要がある場合は、ダーティになる可能性があります。

于 2012-12-24T09:35:02.047 に答える