我有这样的代码:Yii的下拉列表默认值
echo $form->dropDownList($model,
'defaultPrinterId',
CHtml::listData(Printer::model()->findAll(), 'id', 'name'),
array('prompt' => '-- None--'));
,给了我一个下拉列表,像这样:
<select id="LabelType_defaultPrinterId" name="LabelType[defaultPrinterId]">
<option value="">-- None --</option>
</select>
然而,当窗体的帖子,它增加了一个价值,我的表,其中defaultPrinterId是0.而不是那个,我怎么会使它为空,因为它是一个可为空的字段?
这个工程就像一个魅力,但它似乎有点有点笨重给我。基本上每个使用此控制器的控制器操作都需要重复这些代码,以将空字符串转换为空值。似乎应该以某种方式在模型中指定,或者最好是该htmlDropDown工具中的参数之一将发送提示给模型,嘿,将此空字符串视为null。 –
您也可以尝试'empty'参数而不是'prompt',但IIRC的行为相似。 – adamors
另外,如果您想稍微复杂一点,您可以为不同的场景定义自定义规则和/或默认值(插入/更新/等)。看看[CModel :: rules()](http://www.yiiframework.com/doc/api/1.1/CModel/#rules-detail)了解更多信息。 – adamors