繁体   English   中英

Symfony2表单字段类型实体未在表单编辑中设置所选选项

[英]Symfony2 form field type entity not setting selected option on form edit

我在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。

我似乎有这个问题,但我似乎已经在使用建议的解决方案。

我该怎么做才能调试? 谢谢!

- - - - - 更新

\\ CONFIG \\原则\\ 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;
}

声明属性时,是指引用一个对象。

在数据库上,该列将保存对象的ID ,但是symfony将加载它的引用,您将操作一个对象

所以你可以尝试

->add('tpmSourceProperty', 'entity', array('label' => 'Global property', 'class' =>'TI\ML\SyncBundle\Entity\MlProperties'))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM