ChoiceType 未映射到实体字段
ChoiceType Not Mapping to Entity Field
我有一个 EditAnnouncementType
表单映射到的公告实体。我有另外两个 CheckBoxType
表单可以自动更新各自的字段,但是 ChoiceType
表单不起作用。
$builder
->add('edit', SubmitType::class,
array
(
'label' => 'Save changes',
'attr' => ['class' => 'btn btn-primary']
))
->add('type', ChoiceType::class,
[
'choices' => [
'info_type' => 1,
'star_type' => 2,
'alert_type' => 3,
'lightbulb_type' => 3,
'event_type' => 4,
'statement_type' => 5,
'cat_type' => 6,
'hands_type' => 7
],
'mapped' => true,
'expanded' => true,
'required' => true,
])
公告实体和类型字段
class Announcement
{
/**
* @var int
*/
private $type;
/**
* @return string
*/
public function getType(): string
{
return $this->type;
}
/**
* @param int $type
*
* @return $this
*/
public function setType(int $type)
{
$this->type = $type;
return $this;
}
我怀疑 Symfony 会以某种方式严格检查值(使用 ===
)。
并且由于您的 getter returns a string
,映射没有正确发生。
您应该尝试修复您的 getter:
/**
* @return int
*/
public function getType(): int
{
return $this->type;
}
另请注意,您的选择数组可能有问题:
// be careful: those two have the same value
'alert_type' => 3,
'lightbulb_type' => 3,
这肯定会给 Symfony 带来问题,特别是如果它使用 array_values
以便 select 从您的实体的价值中做出正确的选择。
我有一个 EditAnnouncementType
表单映射到的公告实体。我有另外两个 CheckBoxType
表单可以自动更新各自的字段,但是 ChoiceType
表单不起作用。
$builder
->add('edit', SubmitType::class,
array
(
'label' => 'Save changes',
'attr' => ['class' => 'btn btn-primary']
))
->add('type', ChoiceType::class,
[
'choices' => [
'info_type' => 1,
'star_type' => 2,
'alert_type' => 3,
'lightbulb_type' => 3,
'event_type' => 4,
'statement_type' => 5,
'cat_type' => 6,
'hands_type' => 7
],
'mapped' => true,
'expanded' => true,
'required' => true,
])
公告实体和类型字段
class Announcement
{
/**
* @var int
*/
private $type;
/**
* @return string
*/
public function getType(): string
{
return $this->type;
}
/**
* @param int $type
*
* @return $this
*/
public function setType(int $type)
{
$this->type = $type;
return $this;
}
我怀疑 Symfony 会以某种方式严格检查值(使用 ===
)。
并且由于您的 getter returns a string
,映射没有正确发生。
您应该尝试修复您的 getter:
/**
* @return int
*/
public function getType(): int
{
return $this->type;
}
另请注意,您的选择数组可能有问题:
// be careful: those two have the same value
'alert_type' => 3,
'lightbulb_type' => 3,
这肯定会给 Symfony 带来问题,特别是如果它使用 array_values
以便 select 从您的实体的价值中做出正确的选择。