使用整数字段通过按位运算存储选定的日期
Posted
技术标签:
【中文标题】使用整数字段通过按位运算存储选定的日期【英文标题】:Use an integer field to store the selectged days with bitwise op 【发布时间】:2021-08-30 04:20:15 【问题描述】:我正在编写一个包含一周中所有日期的表单,但是这些天保存在 int 字段 $days 中。我正在使用按位运算来显示选定的日期。
% if (day.days b-and 1) == 1 %
"sunday" |trans
% endif %
% if (day.days b-and 2) == 2 %
"monday" |trans
% endif %
....
我不知道如何显示复选框数组并将其转换为 int 和相反。
这里是formtype的一部分
$informations = $builder->create('information', FormType::class, [
'label'=>'Information',
'inherit_data' => true,
'label_attr' => ['class'=>'catlabel']])
->add('categoryQualityView', ChoiceType::class, [
'required' => true,
'label' => 'viewQuality',
'choices' => PlaceRepository::$categoriesRates,
'attr' => [
'class' => 'selectpicker',
],
])
->add('categoryGastronomy', ChoiceType::class, [
'label' => 'Gastronomy',
'required' => true,
'choices' => PlaceRepository::$categoriesGastronomy,
'attr' => [
'class' => 'selectpicker',
],
])
->add('price', MoneyType::class, [
'required' => false,
'label' => 'Price',
])
->add('days', IntegerType::class, [
'required' => false,
'label' => 'Days',
])
->add('description', TextType::class, [
'required' => false,
'label' => 'Description',
])
;
【问题讨论】:
你有 FormType 或类似的东西吗?如果是,您可以将其添加到您的问题中 添加了部分表单类型 【参考方案1】:对于您的情况,您可以创建一个自定义 "Form Field Type"(如果需要,还可以创建一个自定义 Data Transformer)并按照文档中的说明自定义表单模板。
例如:
class DaysOfWeekType extends AbstractType
public function configureOptions(OptionsResolver $resolver): void
$resolver->setDefaults([
'choices' => [
'Monday' => 1,
'Tuesday' => 2,
...
],
]);
public function getParent(): string
return ChoiceType::class;
【讨论】:
以上是关于使用整数字段通过按位运算存储选定的日期的主要内容,如果未能解决你的问题,请参考以下文章