0

Widgetテーブルとそれに付随する Yii Model クラスがあるとしましょう。

インスタンス化( )できるようにしたいのです$tempWidget = new Widgetが、どうにかしてデータベースに保存できないことを確認してください。ユーザーが物事をテストしたり、シミュレートしたりするためだけにモデルを使用したい...

明らかに、呼び出しを避けることもできます$tempWidget->save()が、コードの他の部分がそうしようとした場合に備えて、保存が保存されないようにする何らかのフラグが必要です。

4

1 に答える 1

0

やりたいことを実現する方法はいくつかあります。最も簡単な方法は、モデルのbeforeSave()メソッドを変更して、メソッドを使用してすべての属性を設定解除し、モデルが保存できないようにすることですCModel unsetAttributes。例:

public function beforeSave(){
    $this->attributes = $this->unsetAttributes();
}

これは、必須フィールド (少なくとも 1 つの必須フィールド) を持つこのモデルに関連付けられたルールがある場合にのみ機能します。それ以外の場合は、主キーのみで構成されるテーブルにエントリが作成されます (PK が自動インクリメントであると仮定します)。

于 2012-12-27T22:44:53.103 に答える