Symfony2使用来自DB的数据填充选择列表选项

时间:2014-02-17 14:54:00

标签: php symfony doctrine-orm

我正在尝试使用来自实体的数据填充选择列表。 选项正确创建,选项值正确。

但是,每当我提交表单时,它总是将debtorGroup的原始值放入,并忽略表格中选定的值

发布数据的示例: (选择的debtorGroup为3,而不是2,这是原始值)

object(App\Bundle\CoreBundle\Entity\Customer)[449]
 protected 'id' => int 9
 private 'debtorGroup' => int 2
 private 'fullName' => string 'Daniel Mensing' (length=20)

我的FormBuilder代码:

$form = $this->createFormBuilder($customer)
        ->add('debtorGroup', 'entity', array(
            'mapped'   => false,
            'class' => 'AppCoreBundle:DebtorGroup',
            'required' => true,
        ))
        ->add('fullName')
        ->add('companyName')
        ->add('address1')
        ->add('address2', 'text', array(
            'required'  => false,
        ))
        ->add('zipPostal')
        ->add('city')
        ->add('phone')
        ->add('email')
        ->getForm();

我的客户实体:

class Customer extends User
{
/**
 * @ORM\Id
 * @ORM\Column(type="integer")
 * @ORM\GeneratedValue(strategy="AUTO")
 */
protected $id;

/**
 * @var integer
 *
 * @ORM\Column(name="debtor_group", type="integer")
 */
private $debtorGroup;

/**
 * @var string
 *
 * @ORM\Column(name="full_name", type="string", length=255)
 */
private $fullName;

/**
 * @var string
 *
 * @ORM\Column(name="company_name", type="string", length=255)
 */
private $companyName = null;

我的DebtorGroup实体:

class DebtorGroup
{
/**
 * @ORM\Id
 * @ORM\Column(type="integer")
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @var string
 *
 * @ORM\Column(name="name", type="string", length=100)
 */
private $name;
}

任何人都有一个错误的线索?

提前致谢,

/丹尼尔

1 个答案:

答案 0 :(得分:0)

您在实体字段声明中将mapped设置为false。这是文档中关于mapped选项的说明:

  

如果您希望在阅读或写入时忽略该字段   对象,您可以将映射选项设置为false。

听起来很像你遇到的问题。