Php Symfony2提交表单后保存相关实体数据

Php Symfony2提交表单后保存相关实体数据,php,symfony,orm,entity,relation,Php,Symfony,Orm,Entity,Relation,我开始使用Symfony2进行开发,看起来我需要帮助。我有与SynchronizationSetting实体相关的产品实体。我可以通过与他的实体映射的表单编辑产品数据。但我还需要在SynchronizationSettings中修改一些与产品相关的数据。为此,我修改了表单,使其看起来像(Vendor\ProductBundle\form\ProductType.php): 提交表单后,选中的复选框值将传递给产品实体中的setSynchronizationSetting方法。然后我这样做(Vend

我开始使用Symfony2进行开发,看起来我需要帮助。我有与SynchronizationSetting实体相关的产品实体。我可以通过与他的实体映射的表单编辑产品数据。但我还需要在SynchronizationSettings中修改一些与产品相关的数据。为此,我修改了表单,使其看起来像(Vendor\ProductBundle\form\ProductType.php):

提交表单后,选中的复选框值将传递给产品实体中的setSynchronizationSetting方法。然后我这样做(Vendor\ProductBundle\Entity\SynchronizationSetting.php):

现在我需要以某种方式将这些SynchronizationSetting实体保存到数据库中。我读到从这里调用实体管理器是非常糟糕的做法,所以。。。我应该如何保存它?

一种可能的方法(我不确定这是否是一种好的做法)

然后在处理表单数据的控制器中调用retSynchronizationSetting()并使用EntityManager保存实体

...
    ->add('synchronization_setting', 'choice', array(
            'choices' => array('daily' => 'Daily', 'weekly' => 'Weekly', 'never' => 'Never'))
public function setSynchronizationSetting($data)
{
        $synchronizationSetting = new SynchronizationSetting();
        $synchronizationSetting->setDaily(in_array('daily', $data) ? '1' : '0');
...
}
public function setSynchronizationSetting($data)
{
         $synchronizationSetting = new SynchronizationSetting();
         $synchronizationSetting->setDaily(in_array('daily', $data) ? '1' : '0');
}

public function retSynchronizationSetting()
{
    return $this->synchronizationSetting;
}