Yii $form-> textfield, как установить значение по умолчанию? - программирование
Подтвердить что ты не робот

Yii $form-> textfield, как установить значение по умолчанию?

Итак, я возился с картой yii и в одном из представлений, в частности в форме создания, я пытаюсь присвоить одно из моих текстовых полей значение по умолчанию. Поэтому, когда я перехожу на мою страницу создания, значения уже предварительно загружаются в форму.

Вот мой текущий код

<div class="row">
    <?php echo $form->labelEx($model,'teamlead'); ?>
    <?php echo $form->textField($model,'teamlead',array('size'=>50,'maxlength'=>50,'value'=>Yii::app()->user->getUsername(),'disabled'=>'disabled')); ?>
    <?php echo $form->error($model,'teamlead'); ?>
</div>

Когда я нажимаю кнопку create, YII дает мне ошибку, сообщающую мне, что TextField пуст? Не уверен, что еще я могу сделать, кроме как установить значение. Я также предполагаю установить атрибуты модели?

4b9b3361

Ответ 1

перед описанием поля добавьте это:

<?php
$model->teamlead='my default value';
?>

Ответ 2

Это работает на моей стороне:

<?= $form->field($model, 'some_field')->textInput(['readonly' => true, 'value' => 'Your Value']) ?>

Ответ 3

Используйте array('readonly' => true) вместо disabled.

Ответ 4

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

<?php echo $form->textField($model,'pp_status', array('value'=>'Open', 'readonly' => 'true')); ?>

Ответ 5

Всегда, это хорошая идея с данными (значения defaul, изменения после чего-то, обработка данных и т.д.) в классе модели.

Если вы получаете значение после инициализации модели, лучшим способом является использование метода init().

Но если вы хотите изменить или определить значение по умолчанию после загрузки данных из базы данных, вы можете использовать метод afterFind()

Например:

public function afterFind(){
    $this->localdate = date("Y-m-d");
    parent::afterFind();
}

В этой ссылке есть много полезной информации об этих методах: http://www.yiiframework.com/doc/guide/1.1/en/database.ar#customization

Ответ 6

<div class="row">
    <?php echo $form->labelEx($model,'teamlead'); ?>
    <?php echo $form->textField($model,'teamlead',array('readonly'=>'true',size'=>50,'maxlength'=>50,'value'=>Yii::app()->user->getUsername(),'disabled'=>'disabled')); ?>
    <?php echo $form->error($model,'teamlead'); ?>
</div>

положите array('readonly'=>'true') в свою кодировку, он будет работать