Cuando usamos la clase CActiveForm en Yii para generar un formulario, por defecto todos los elementos (textArea, textField radioButton, checkbox, radioButtonListetc.) están vacíos o no seleccionados, si queremos que tengan ciertos valores al cargar el formulario para algunos elementos es muy simple, por ejemplo para un textField basta con pasar en su tercer atributo (htmlOptions) algo así:
echo $form->textField($model,'nombre',array('size'=>50, 'maxlength'=>300, 'value'=>'teete'));
Lo mismo podriamos hacer pasando el atributo como checked a radiobuttons o checkboxes
echo $form->checkBox($model,'suscripcion_boletin', array('checked'=>'true'));
La cosa se complica un poco cuando creamos radioButtonLists o checkBoxLists o bien un textArea ya que en el caso del textArea no podemos pasar algun atributo que defina su valor. En estos casos la solución recae en el controlador ya que desde el codigo de nuestra acción podemos asignar un valor al modelo, por ejemplo en el siguiente código generado automaticamente por la herramienta gii agregamos un valor a nuestro campo del textarea:
$model = new Encuesta;
if(isset($_POST['Encuesta']))
{
$model->attributes=$_POST['Encuesta'];
if($model->save())
$this->redirect(array('view','id'=>$model->id_encuesta));
}else{
//aquí agregamos el valor por defecto
$model->Comentarios = 'Valor default para comentarios';
}
$this->render('create',array(
'model'=>$model));
La razón de hacerlo en el else del if POST es porque si el usuario ya lleno el formulario pero al enviarlo este no paso la validación no queremos borrar el valor de $model->Comentarios y volverlo a inicializar, por ello solo lo hacemos la primera vez en el else del POST. Ahí pueden inicializar cualquier valor y nuestra clase CActiveForm los mostrara con sus valores por defecto, espero les sirva.