我在模型中有这个:
fields.yaml
special_offer:
label: special_offer
type: Switch
default: true
DB字段是tinyint(1)
工作得很好!
但是我想在列表中显示不是0或1,但可用/不可用。 我可以存储字符串,但我更喜欢转换它。
这个访问者:
public function getSpecialOfferAttribute ($value){
return ( $value === 1 ) ? 'available' : 'not available' ;
}
将在列表中显示,但在表单中显示错误,因为switch仅接受0/1
我该怎么做?
由于
答案 0 :(得分:1)
您可以使用custom column type。在plugin.php
文件中定义自定义列类型:
public function registerListColumnTypes()
{
return [
// Convert special offer values to text
'special_offer' => function($value) {
$map = [
0 => 'not available',
1 => 'available',
];
return $map[$value];
}
];
}
然后在列列定义文件中使用:
special_offer:
label: Special offer
type: special_offer