我有两个实体,生产者和功能。它们之间存在ManyToMany关系,但是我需要附加字段$ description,其中将包含生产者选择的功能的描述(每个生产者都可以用自己的话描述相同的功能)。为此,我创建了一个间接ProducerFunctionality实体(见下文)。
现在我有一个生产者编辑表单($resolver->setDefaults(['data_class' => Producer:class])
)。我需要显示所有功能。它们必须是复选框,并且在每个复选框旁边,我需要具有$ description字段(文本区域)。如果生产者已经选择了任何功能(因此$ producerFunctionalities集合不为空),则在渲染表单时,我需要选中相应的复选框并填充$ description文本区域。 Symfony表单系统可以处理吗?
这是简化的模型:
/**
* @ORM\Entity
*/
class Producer
{
/**
* @ORM\OneToMany(targetEntity="ProducerFunctionality", mappedBy="producer", cascade={"persist", "remove"}, orphanRemoval=true)
*/
private $producerFunctionalities;
// getter, adder, remover
}
/**
* @ORM\Entity
*/
class ProducerFunctionality
{
/**
* @ORM\ManyToOne(targetEntity="Producer", inversedBy="producerFunctionalities")
* @ORM\JoinColumn(nullable=false)
*/
private $producer
/**
* @ORM\ManyToOne(targetEntity="Functionality")
* @ORM\JoinColumn(nullable=false)
*/
private $functionality;
/**
* @ORM\Column(type="text")
*/
private $description;
// getters and setters
}
/**
* @ORM\Entity
*/
class Functionality
{
/**
* @ORM\Column
*/
private $name;
// getter and setter. No relation to ProducerFunctionality, because there won't be updating ProducerFunctionality from this side of realtion.
}