Передача временных данных обратно в скрытое поле в Yii

Я пытаюсь передать временные данные из моей формы в мою модель. Моя форма содержит скрытые данные, но она не получает никаких значений из моей модели.

Моя форма

<?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 так он возвращается к скрытой форме?

2 ответа

Решение

Во-первых: атрибут должен быть объявлен как открытый в модели.

public $fieldName;

Добавьте в rules() Model поле с массивом безопасного режима ('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.
    );
}

Является ли 'fieldName' частью модели / таблицы? Если нет, и это просто пользовательское свойство, объявленное в модели, попробуйте установить его как "безопасный"

Другие вопросы по тегам