Silverstripe 3.4+;/如何将某些布尔字段组合到CheckboxFieldSet中?
默认情况下,Silverstripe在后端将每一个布尔字段作为复选框呈现在新行中。有没有一种简单的方法可以将实际对象的某些布尔字段合并到CheckboxFieldSet中,从而使字段彼此相邻地渲染?这将节省空间并使其可读性更好 我只想在那里有具体的布尔字段,但不是所有的字段(只有烤面包机,微波炉,烧烤)。下面是一个简化的示例: House.phpSilverstripe 3.4+;/如何将某些布尔字段组合到CheckboxFieldSet中?,checkbox,backend,silverstripe,Checkbox,Backend,Silverstripe,默认情况下,Silverstripe在后端将每一个布尔字段作为复选框呈现在新行中。有没有一种简单的方法可以将实际对象的某些布尔字段合并到CheckboxFieldSet中,从而使字段彼此相邻地渲染?这将节省空间并使其可读性更好 我只想在那里有具体的布尔字段,但不是所有的字段(只有烤面包机,微波炉,烧烤)。下面是一个简化的示例: House.php 我们需要一份通缉犯名单 CheckboxSetField表单字段无法处理不同的DB字段。 您需要一个自定义表单字段(扩展FormField)来构建所描
我们需要一份通缉犯名单
CheckboxSetField
表单字段无法处理不同的DB字段。
您需要一个自定义表单字段(扩展FormField
)来构建所描述的功能
或者,您可以使用将选定值存储在文本db字段中的
对于已知列表,您可以使用MultiValueCheckboxField
或MultiValueDropdownField
private static $db = array(
'Amenities' => 'Text',
);
public function getCMSFields() {
$fields = parent::getCMSFields();
$fields->replaceField('Amenities', MultiValueCheckboxField::create('Amenities', 'Amenities', $this->getAllAvailableAmenities()));
return $fields;
}
欢迎来到堆栈溢出!您可以先学习并创建一个示例。这使我们更容易帮助您。如果您只想更改cms中的显示,您可以添加样式表,然后设置复选框元素的样式<代码>浮动:左;宽度:250px或任何适合页面的样式。这可能是这种情况下的一种解决方法,如果不太复杂且不值得努力,我更喜欢编程解决方案。在某个时候,我需要这样的下拉字段,然后我回到原点(这是一个几乎相同的问题,为下拉字段提供某些字段)。嗨,Greg,我实际上不想在CheckboxSetField中处理不同的DB字段,我只想要3个布尔字段(烤面包机、微波炉、烧烤)CheckboxSetField中实际数据对象的。DataObject也有其他字段,但这些字段应该被忽略。
private static $db = array(
'Amenities' => 'Text',
);
public function getCMSFields() {
$fields = parent::getCMSFields();
$fields->replaceField('Amenities', MultiValueCheckboxField::create('Amenities', 'Amenities', $this->getAllAvailableAmenities()));
return $fields;
}