Database 如何将表单组合框字段的默认值设置为Symfony2中数据库中的值?
我想知道如何将表单组合框字段的默认值设置为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
<?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))