tengo este código:Yii DROPDOWNLIST valor predeterminado
echo $form->dropDownList($model,
'defaultPrinterId',
CHtml::listData(Printer::model()->findAll(), 'id', 'name'),
array('prompt' => '-- None--'));
Lo que me da una lista desplegable de esta manera:
<select id="LabelType_defaultPrinterId" name="LabelType[defaultPrinterId]">
<option value="">-- None --</option>
</select>
Sin embargo, cuando los mensajes de forma, que añade un valor a mi mesa donde el DefaultPrinterId es 0. En lugar de eso, ¿cómo lo haría nulo, ya que es un campo que admite valores NULL?
Esto funciona como un encanto, sin embargo, parece un poco torpe para mí. Básicamente, cada acción del controlador que usa esto necesita tener este código repetido para transformar una cadena vacía en nula. Parece que esto debería estar especificado de alguna manera en el modelo, o preferiblemente uno de los parámetros en esa herramienta htmlDropDown enviaría una pista al modelo que, oye, trata esta cadena vacía como nula. –
También puede probar el parámetro 'empty' en lugar de' prompt' pero IIRC se comporta de manera similar. – adamors
Además, si quiere complicar un poco las cosas, puede definir reglas personalizadas y/o valores predeterminados para diferentes escenarios (insertar/actualizar/etc). Eche un vistazo a [CModel :: rules()] (http://www.yiiframework.com/doc/api/1.1/CModel/#rules-detail) para obtener más información. – adamors