2016-12-07 44 views
1

我嘗試在我的數據庫中發佈Guide。我的要求是這樣的:Symfony 3 - 將對象傳遞給實體類型

{ 
    "name": "test", 
    "comany": 1 
} 

我的形式:

$builder 
     ->add('name', TextType::class) 
     ->add('company', EntityType::class, array('class' => 'AppBundle:Company', 'allow_extra_fields' => true)); 

這是工作,但它在我的前端會更容易做出與company的請求作爲對象,而不是隻有通過ID。如果我提出這樣的要求:

{ 
    "name": "test", 
    "company": { 
    "id": 1, 
    "name": "company1" 
    } 
} 

我得到的錯誤Bad Request {"form":{"children":{"name":{},"company":{"errors":["This value is not valid."]}}},"errors":["This value is not valid."]}

我該如何解決這個問題?

回答

1

如果您確實需要在請求中傳遞整個公司對象,那麼您需要努力將請求數據轉換爲您的表單可以理解的內容。

我想看看Form Events,特別是FormEvents::PRE_SUBMIT事件。根據該文件,掛接到本次活動將讓您:從請求

  • 更改數據,將數據提交到表單
  • 添加或刪除表單域,將數據提交給前前表格。
+0

謝謝,這幫助我解決了我的問題。 – Oudstand