Database 如何将表单组合框字段的默认值设置为Symfony2中数据库中的值?

Database 如何将表单组合框字段的默认值设置为Symfony2中数据库中的值?,database,symfony,combobox,field,default-value,Database,Symfony,Combobox,Field,Default Value,我想知道如何将表单组合框字段的默认值设置为Symfony2中数据库中的值。解释如下: 这是我正在处理的实体的代码: <?php namespace Ikproj\HomeBundle\Entity; use Doctrine\ORM\Mapping as ORM; /** * User * * @ORM\Table(name="user") * @ORM\Entity(repositoryClass="Ikproj\HomeBundle\Entity\UserRepo

我想知道如何将表单组合框字段的默认值设置为Symfony2中数据库中的值。解释如下:

这是我正在处理的实体的代码:

    <?php

namespace Ikproj\HomeBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * User
 *
 * @ORM\Table(name="user")
 * @ORM\Entity(repositoryClass="Ikproj\HomeBundle\Entity\UserRepository")
 */
class User
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id_user", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

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

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

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

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

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

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="dateanniv", type="date")
     */
    private $dateanniv;


    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set name
     *
     * @param string $name
     * @return User
     */
    public function setName($name)
    {
        $this->name = $name;

        return $this;
    }

    /**
     * Get name
     *
     * @return string 
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * Set email
     *
     * @param string $email
     * @return User
     */
    public function setEmail($email)
    {
        $this->email = $email;

        return $this;
    }

    /**
     * Get email
     *
     * @return string 
     */
    public function getEmail()
    {
        return $this->email;
    }

    /**
     * Set pseudo
     *
     * @param string $pseudo
     * @return User
     */
    public function setPseudo($pseudo)
    {
        $this->pseudo = $pseudo;

        return $this;
    }

    /**
     * Get pseudo
     *
     * @return string 
     */
    public function getPseudo()
    {
        return $this->pseudo;
    }

    /**
     * Set passWD
     *
     * @param string $passWD
     * @return User
     */
    public function setPassWD($passWD)
    {
        $this->passWD = $passWD;

        return $this;
    }

    /**
     * Get passWD
     *
     * @return string 
     */
    public function getPassWD()
    {
        return $this->passWD;
    }

    /**
     * Set sexeuser
     *
     * @param string $sexeuser
     * @return User
     */
    public function setSexeuser($sexeuser)
    {
        $this->sexeuser = $sexeuser;

        return $this;
    }

    /**
     * Get sexeuser
     *
     * @return string 
     */
    public function getSexeuser()
    {
        return $this->sexeuser;
    }

    /**
     * Set dateanniv
     *
     * @param \DateTime $dateanniv
     * @return User
     */
    public function setDateanniv($dateanniv)
    {
        $this->dateanniv = $dateanniv;

        return $this;
    }

    /**
     * Get dateanniv
     *
     * @return \DateTime 
     */
    public function getDateanniv()
    {
        return $this->dateanniv;
    }
}

最后,我解决了这个问题,我只是更改了form类中的以下行:

->add('sexeuser', 'choice', array('choices' => array('Homme' => 'Homme', 'Femme' => 'Femme')))
对于这一点:

->add('sexeuser', 'choice', array('choices' => array('Homme' => 'Homme', 'Femme' => 'Femme'),'empty_value' => null))

实际上,正如您在上面看到的,我添加了这部分代码:
'empty\u value'=>null

您如何在控制器中创建表单?名称字段的默认值被设置了吗?好的,关于控制器中的表单,请再看看我的问题,我添加了它的代码。关于名称字段,它是表单中的文本字段,因此没有默认值。
public function ProfileChangeAction($id, Request $request) {
    $em = $this->getDoctrine()->getManager();
    $profile1 = $em->getRepository('IkprojHomeBundle:User')->find($id);
    $form = $this->createForm(new UserprofilechangeType(), $profile1);
    $profile2 = $form->getData();
    $form->handleRequest($request);
    if ($request->isMethod('POST')) {
        if ($form->isValid()) {
            $em->persist($profile2);
            $em->flush();
            return $this->render('IkprojHomeBundle:configuration:profilechange.html.twig');
        }
    } else {
        return $this->render('IkprojHomeBundle:configuration:profilechange.html.twig', array(
                    'id' => $id,
                    'form' => $form->createView()));
    }
}
->add('sexeuser', 'choice', array('choices' => array('Homme' => 'Homme', 'Femme' => 'Femme')))
->add('sexeuser', 'choice', array('choices' => array('Homme' => 'Homme', 'Femme' => 'Femme'),'empty_value' => null))