我想使用一个文本表单字段将数据保存在两个实体属性中。但是,我没有找到任何可能导致干净实施的解决方案/提示。
考虑以下示例†:
答案 0 :(得分:0)
你可以有一个未在数据库中映射的字段,在prePersist和preUpdate方法中,你可以转换数据并将它们保存在适当的字段中。例如:
/**
*
* @ORM\HasLifecycleCallbacks()
*/
class MyClass
{
private $info;
/**
* @ORM\Column(name="count", type="integer")
*/
private $count;
/**
* @ORM\Column(name="unit", type="string")
*/
private $unit;
/**
* @ORM\PrePersist()
* @ORM\PreUpdate()
*/
public function separateInfo(){
$infoArray = explode(' ', $this->info);
$this->count = $infoArray[0];
$this->unit = $infoArray[1];
}
}
在表单中,您只需添加'信息'字段:
class MyClassType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('info');
}
}
这未经过测试,但它可以帮助您。
我希望这对你有用。
亲切的问候。