按属性/用户按用户名选择实体

时间:2014-02-20 09:00:24

标签: validation symfony symfony-forms symfony-2.3

我安装了FOSUserBundle。 现在我想通过<select />框选择所有用户。

例如我有......

<?php
// [...]
class ProfileType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('name')
            ->add('favorite_drink')
            ->add('favorite_meal')
            ->add('favorite_film')
            // Problem...
            ->add('bestFriend', 'entity', array(
                'class' => 'AcmeDemoUserBundle:User',
                'property' => 'id'
            ))
        ;
    }
}

具有bestFriend关系的实体。

<?php
// [...]
class Profile
{
    /**
     * @var integer
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

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

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

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

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

    /**
     * @var \AcmeDemo\UserBundle\Entity\User
     *
     * @ORM\ManyToOne(targetEntity="\AcmeDemo\UserBundle\Entity\User", inversedBy="profiles")
     * @ORM\JoinColumn(name="user", referencedColumnName="id", onDelete="CASCADE")
     */
    private $bestFriend;

    // [...]
}

在提交时,我收到错误&#34;验证失败&#34;。

这样的预期事情:

the expected result

在后台:

the background expected result

我该怎么办? 有小费吗? :)

1 个答案:

答案 0 :(得分:0)

可能是由于User验证。您可以深入User验证并在:字段中设置(name符号。

或者您可以尝试将No best friend :(替换为No best friend