我创建了一个复选框输入作为Boolean类型,用于将值存储为盘算的-已选中或未选中。选中将存储1,未选中将存储0。

现在,我想在网格 View 和 View 中将标签显示为表示值1和0。如何实现这一目标。

我的_form.php代码就像

$form->field($model, 'discharged')->checkBox(['label' => 'Discharged',
'uncheck' => '0', 'checked' => '1'])

我尝试过像
[
'attribute'=>'discharged',
'value'=> ['checked'=>'Yes','unchecked=>'no']
],

但看起来不正确的语法。

谢谢。

最佳答案

正如arogachev所说,您应该使用boolean formatter:

'discharged:boolean',

http://www.yiiframework.com/doc-2.0/guide-output-formatter.html

http://www.yiiframework.com/doc-2.0/yii-i18n-formatter.html#asBoolean()-detail

或者,您可以在模型中添加getDischargedLabel()函数:
public function getDischargedLabel()
{
    return $this->discharged ? 'Yes' : 'No';
}

在您的gridview中:
[
    'attribute'=>'discharged',
    'value'=> 'dischargedLabel',
],

10-06 13:45