我在Form / * Type.php类中使用了以下FormBuilder:
<?php
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('tpmTargetId', null, array('label' => 'Target', 'required' => true))
->add('tpmSourcePropertyId', 'entity', array( 'label' => 'Global property', 'class' => 'TI\ML\SyncBundle\Entity\MlProperties'))
;
}
问题在于 tpmSourcePropertyId 字段,在创建新条目时,它会在下拉字段中显示正确的选项,并在保存时插入正确的ID,但在尝试时要编辑该条目,下拉列表默认为选项#1而不是已保存的ID。
如果我将字段呈现为类型文本,则会显示存储的正确ID。
我似乎this question但我似乎已经在使用建议的解决方案了。
我可以做些什么来调试这个?谢谢!
---------更新
\设置\教义\ MlTargets.orm.yml
tarEmpPropertyId:
type: integer
nullable: false
unsigned: true
comment: ''
column: tar_emp_property_id
实体\ MlTargets.php
/**
* @var integer
*/
private $tarEmpPropertyId;
/**
* Set tarEmpPropertyId
*
* @param integer $tarEmpPropertyId
* @return MlTargets
*/
public function setTarEmpPropertyId($tarEmpPropertyId)
{
$this->tarEmpPropertyId = $tarEmpPropertyId;
return $this;
}
/**
* Get tarEmpPropertyId
*
* @return integer
*/
public function getTarEmpPropertyId()
{
return $this->tarEmpPropertyId;
}
答案 0 :(得分:2)
声明属性时,您的意思是引用一个对象。
在数据库中,该列将保存对象的 id ,但symfony将加载它的引用,您将操作对象。
所以你可以试试
->add('tpmSourceProperty', 'entity', array('label' => 'Global property', 'class' =>'TI\ML\SyncBundle\Entity\MlProperties'))