我开始使用Symfony2进行开发,看起来我需要帮助。我有与SynchronizationSetting实体相关的Product实体。我可以通过表格与他的实体编辑产品数据。但我还需要修改SynchronizationSetting中与产品相关的一些数据。为此,我修改了表单,使其看起来像那样(Vendor \ ProductBundle \ Form \ ProductType.php):
...
->add('synchronization_setting', 'choice', array(
'choices' => array('daily' => 'Daily', 'weekly' => 'Weekly', 'never' => 'Never'))
在提交表单后,复选框值将传递给Product Entity中的setSynchronizationSetting方法。然后我这样做(Vendor \ ProductBundle \ Entity \ SynchronizationSetting.php):
public function setSynchronizationSetting($data)
{
$synchronizationSetting = new SynchronizationSetting();
$synchronizationSetting->setDaily(in_array('daily', $data) ? '1' : '0');
...
}
现在我需要以某种方式将SynchronizationSetting实体保存到数据库中。我读到从这里调用实体经理是非常糟糕的做法所以......我该如何保存?
答案 0 :(得分:0)
一种可能的方式(我不确定这是不错的做法)
public function setSynchronizationSetting($data)
{
$synchronizationSetting = new SynchronizationSetting();
$synchronizationSetting->setDaily(in_array('daily', $data) ? '1' : '0');
}
public function retSynchronizationSetting()
{
return $this->synchronizationSetting;
}
然后在您处理表单数据的控制器中,调用retSynchronizationSetting()并使用EntityManager保存实体。