我的表单类型中有EntityType
类,它从我的一个表中生成数据。
我的问题是当我尝试使用doctrine方式将其插入我的数据库时,该实体类型字段返回{}
值。
这是确切的数据库错误:
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", "test@gmail.com", "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
答案 0 :(得分:1)
在您的类别实体中,您应该:
public function __toString() {
return $this->id;
}