我创建了一个复选框输入作为类型布尔值,用于将值存储为dishcharged - 已选中或未选中.Checked将存储1并且未选中将存储0.
现在我想在网格视图和视图中将值1和0 显示为是或否.怎么能实现这一点.
我的_form.php代码就像
$form->field($model, 'discharged')->checkBox(['label' => 'Discharged',
'uncheck' => '0', 'checked' => '1'])
Run Code Online (Sandbox Code Playgroud)
我试过像
[
'attribute'=>'discharged',
'value'=> ['checked'=>'Yes','unchecked=>'no']
],
Run Code Online (Sandbox Code Playgroud)
但看起来不正确的语法.
谢谢.
soj*_*oju 12
正如arogachev所说,你应该使用boolean formatter:
'discharged:boolean',
Run Code Online (Sandbox Code Playgroud)
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';
}
Run Code Online (Sandbox Code Playgroud)
在你的gridview中:
[
'attribute'=>'discharged',
'value'=> 'dischargedLabel',
],
Run Code Online (Sandbox Code Playgroud)
第一种选择:
[
'attribute' => 'discharged',
'format' => 'boolean',
],
Run Code Online (Sandbox Code Playgroud)
或快捷方式:
'discharged:boolean',
Run Code Online (Sandbox Code Playgroud)
这不需要模型中的其他方法和编写文本标签(它将根据配置中的语言自动设置).
在这里查看更多细节.
第二种选择:
而不是在模型中编写其他方法,您只需将闭包传递给value.你可以在这里查看详情.
[
'attribute' => 'discharged',
'value' => function ($model) {
return $model->discharged ? 'Yes' : 'No';
},
],
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11507 次 |
| 最近记录: |