Yii DropDownListRow :将布尔值映射到下拉选项


Yii DropDownListRow : map boolean values to dropdown options

我在下面有这个小部件:

<?php 
  echo $form->dropDownListRow($model, 'status', array('Active','Inactive'), 
        array(
        'id'=>'status-list',
        'class'=>'span5',
        'data-placement'=>'right'        
             )                                                           
       ); 
?>

我使用上述内容创建一个选项,无论某些内容是否处于活动状态。但是这不会提交布尔值"真"或"假",而是字符串"活动"和"非活动",如何让它根据选择提交布尔值?活动意味着真,不活动意味着假?谢谢!

如果 dropDownListRow() 函数工作相同的 CActiveForm::d ropDownList()

您需要提供一个键 => 值数组。其中 key 是发送到服务器的下拉选项值,值是用户看到的选项显示字符串。

例如,对于您的示例,请尝试

<?php 
  echo $form->dropDownListRow($model, 'status', array('true' => 'Active', 'false' => 'Inactive'), 
        array(
        'id'=>'status-list',
        'class'=>'span5',
        'data-placement'=>'right'        
             )                                                           
       ); 
?>

有关详细信息,请参阅 http://www.yiiframework.com/doc/api/1.1/CHtml#activeDropDownList-detail

编辑:请注意,这会将字符串 true 或 false 发送到服务器,而不是布尔值。因此,在比较或转换值时,您需要考虑到这一点。