0
我有我的表單類型的EntityType
類,它可以從我的表中生成數據。如何在symfony 3中設置選定的EntityType字段
我的問題是當我嘗試使用教條方式將其插入到我的數據庫中時,該實體類型字段返回{}
值。
這裏的確切數據庫錯誤:
An exception occurred while executing 'INSERT INTO sub_agent (company_id, name, email_address, telephone_no, mobile_no, website, registered, ip) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)' with params [{}, "test", "[email protected]", "test", "test", null, "2017-01-09 09:15:42", "127.0.0.1"]:
當我調試實體領域的控制器使用var_dump
我看到company_id
是從我company entity class
返回一個對象。
這裏是我的sub_agent_type
形式
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('company_id', EntityType::class, array(
'label' => 'Company',
'mapped' => false,
'required' => true,
'class' => 'SwipeBundle\Entity\Company',
'choice_label' => 'name',
'choice_value' => 'id',
'expanded' => false,
'multiple' => false,
'placeholder' => 'Choose a Company',
'constraints' => array(
new NotBlank(array("message" => 'Company name is required.')),
),
));
}
如何設置我的實體領域(下拉列表)對我的表格選擇的值在我的數據庫保存?這裏是我的實體字段的生成的小枝。
<select id="sub_agent_company_id" name="sub_agent[company_id]" required="required">
<option value="" selected="selected">Choose a Company</option>
<option value="20">ABC</option>
<option value="21">EFG</option>
<option value="22">HIJ</option>
</select>
這裏是我的控制器:
if ($form->isSubmitted() && $form->isValid()) {
$data = $form->getData();
$sub_agent_name = $data->getName();
$company_id = $data->getCompanyId();
var_dump($company_id); exit
只需使用'company'場,而不是'company_id'。 – yceruto
請進一步解釋 – phpmeter
對不起,請參閱http://symfony.com/doc/current/doctrine.html#add-mapping-information關於映射數據庫和http://symfony.com/doc/current/forms的更多詳細信息的.html#創建表單類 – yceruto