2012-02-29 15 views
2

hereと記載したように、Yiiは仮想属性を提供します。私は私のモデルに以下を追加しました:CActiveFormと仮想属性

public function getTest() 
{ 
... 
} 

public function setTest($value) 
{ 
... 
} 

私CActiveFormでは、私はTextFieldに次のコマンドを使用します。フォームを開くときは、get-方法は(デバッガで確認)と呼ばれている

<div class="row"> 
    <?php echo $form->labelEx($model,'test'); ?> 
    <?php echo $form->textField($model,'test'); ?> 
    <?php echo $form->error($model,'test'); ?> 
</div> 

。レコードを保存してもセッターは呼び出されません(他のすべての属性は正常に保存され、動作します)。

誰かがこれに私を助けるためにそこにいますか?

答えて

3

変数 "test"のルールを定義するのに欠けていると思います。

public function rules() 
{ 
    $rules[] = array('test','safe'); 
    return $rules; 
} 
+0

私は前にもこのを試してみましたが、結果があって、英語で「Eigenschaft CSafeValidator.0イストNICHTのdefiniert。」:「プロパティCSafeValidator.0は未定義です。」。私はYiiにとって全く新しいので、どこを変えるべきかわからない。 –

+1

あなたはモデルコード –

+0

を掲載しますか?私の問題が見つかりました。実際、rules()は正しく定義されていませんでした。私は、私の問題につながる「安全な」オプションを排除しました。あなたの答えは100%正しいです。 –