【问题标题】:Select entity by property / User by username按属性选择实体/按用户名选择用户
【发布时间】:2014-02-20 09:00:23
【问题描述】:

我已经安装了 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;

    // [...]
}

提交时我收到“验证失败”的错误。

预期是这样的:

在后台:

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

【问题讨论】:

  • 您可以发布您的实体与关系bestFriend 吗?
  • 你如何为这个表单元素设置主题?
  • 显示您的DemoUserBundle/User.php 文件。

标签: validation symfony symfony-forms symfony-2.3


【解决方案1】:

可能是由于User 验证。您可以深入了解User 验证并让name 字段中的:( 符号。

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

【讨论】:

  • 那我也有同样的问题。我现在使用了一个转换器:FOS\UserBundle\Form\DataTransformer\UserToUsernameTransformer 这就是我想要的 :)
猜你喜欢
  • 1970-01-01
  • 2019-05-09
  • 2020-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-12
  • 1970-01-01
  • 2017-12-16
相关资源
最近更新 更多