0

フォームからモデルに一時データを渡そうとしています。フォームに隠しデータがありますが、モデルから値を取得しません。

私のフォームは

<?php echo $form->hiddenField($model, 'fieldName'); ?>
<?php echo $form->labelEx($model,'name'); ?>
<?php echo $form->textField($model,'name'); ?>
<?php echo $form->error($model,'name'); ?>

JQuery を使用して隠しフィールドのデータを投入し、フォームの検証に進みます。

public function rules() 
{
    return array(       
        array('name, email, subject, phone, body', 'required','message' => '{attribute} Required'),
        array('resume', 'file', 'types'=>'txt,pdf,doc,docx', 'maxSize'=>2097152, 'tooLarge'=>'File has to be smaller than 2MB','allowEmpty'=>false),
        array('email', 'email'),
    );
}

検証で例外が発生するたびに$_POST、隠しフォームから送信したデータを除いて、入力したすべてのデータが返されます。

$_POST非表示のフォームに戻すにはどうすればよいですか?

4

2 に答える 2

0

'fieldName' はモデル/テーブルの一部ですか? そうでなく、モデルで宣言された単なるカスタム プロパティである場合は、「安全」に設定してみてください。

于 2013-09-30T09:02:36.337 に答える
0

最初:属性モデルでpublicとして宣言する必要があります。

public $fieldName;

モデルのrules()に、セーフ モードの array('fieldName','safe')を持つフィールドを追加します。

public function rules() 
{
    return array(       
        array('name, email, subject, phone, body', 'required','message' => '{attribute} Required'),
        array('resume', 'file', 'types'=>'txt,pdf,doc,docx', 'maxSize'=>2097152, 'tooLarge'=>'File has to be smaller than 2MB','allowEmpty'=>false),
        array('email', 'email'),
        array('fieldName','safe'), // Add the custom field to 'safe' mode.
    );
}
于 2013-09-30T09:38:28.057 に答える