簡體   English   中英

Symfony2提交表格后保存相關實體的數據

[英]Symfony2 Saving data of related Entity after submiting form

我開始使用Symfony2進行開發,看起來我需要幫助。 我有與SynchronizationSetting實體相關的Product實體。 我可以通過與他的實體對應的表單來編輯產品數據。 但是我還需要在SynchronizationSetting中修改一些與產品相關的數據。 為此,我修改了表格,使其看起來像這樣(Vendor \\ ProductBundle \\ Form \\ ProductType.php):

...
    ->add('synchronization_setting', 'choice', array(
            'choices' => array('daily' => 'Daily', 'weekly' => 'Weekly', 'never' => 'Never'))

提交表單后,選中的復選框值將傳遞到產品實體中的setSynchronizationSetting方法。 然后,我執行該操作(供應商\\ ProductBundle \\ Entity \\ SynchronizationSetting.php):

public function setSynchronizationSetting($data)
{
        $synchronizationSetting = new SynchronizationSetting();
        $synchronizationSetting->setDaily(in_array('daily', $data) ? '1' : '0');
...
}

現在,我需要以某種方式將那些SynchronizationSetting實體保存到數據庫中。 我讀到從這里打電話給實體經理是非常不好的做法,所以...我應該如何保存呢?

一種可能的方式(我不確定這是否是一種好習慣)

public function setSynchronizationSetting($data)
{
         $synchronizationSetting = new SynchronizationSetting();
         $synchronizationSetting->setDaily(in_array('daily', $data) ? '1' : '0');
}

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

然后在處理表單數據的控制器中調用retSynchronizationSetting()並使用EntityManager保存實體。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM