实体字段类型,具有通过外部实体的标识

时间:2015-04-30 16:29:37

标签: symfony doctrine-orm symfony-forms

我有一个Profile实体,其中包含来自User实体的简单派生身份,如Doctrine docs中所述。因此User提供idProfile使用外键作为标识符。

User:
  type: entity
  id:
    id:
      type: integer
      generator:
        strategy: AUTO

Profile:
  type: entity
  id:
    user:
      associationKey: true
  oneToOne:
    user:
      targetEntity: User

然后我在表单中有一个实体字段,使用Profile作为类。

->add('profile', 'entity', array(
    'class' => 'AppBundle\Entity\Profile'
))

我希望结果元素像往常一样:

<select>
    <option value="[id of the profile]">[toString of the profile]</option>
</select>

但我得到了:

<select>
    <option value="[toString of the user]">[toString of the profile]</option>
</select>

当然,在提交表单时,我收到验证错误,因为它需要id但是会​​得到一个字符串。

如何强制该字段将个人资料id用作value?或者至少是用户id(也是相同的)。

1 个答案:

答案 0 :(得分:0)

使用“属性”。 http://symfony.com/doc/current/reference/forms/types/entity.html#property

您将在手册

中看到答案