用我从 table - Symfony2 中获取的数据填写我的表格
Fill my form with the data that I pick up from a table - Symfony2
我的问题是:我有一个包含用户数据的实体,例如:
- 年龄
- 名字
- 姓氏
- 地址
- phone
- ...
我的目标是制作一个表单,其中使用查询可以获取所有这些数据并用数据填充我的表单,以便用户可以在您更改单元格或更改方向时修改它他家
我和公司已经做好了实体 和表格,参考一下table就可以了。我的问题是如何使用从 table 获得的数据填充表单字段。
我的实体 (DatosEntity):
<?php
namespace Proyecto\LavocBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Datos
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="Proyecto\LavocBundle\Entity\DatosRepository")
*/
class Datos
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="empresa", type="string", length=50)
*/
private $empresa;
/**
* @var integer
*
* @ORM\Column(name="cuit", type="integer")
*/
private $cuit;
/**
* @var string
*
* @ORM\Column(name="localidad", type="string", length=50)
*/
private $localidad;
/**
* @var string
*
* @ORM\Column(name="calle", type="string", length=40)
*/
private $calle;
/**
* @var integer
*
* @ORM\Column(name="altura", type="integer")
*/
private $altura;
/**
* @var integer
*
* @ORM\Column(name="areaTel", type="integer")
*/
private $areaTel;
/**
* @var integer
*
* @ORM\Column(name="telefono", type="integer")
*/
private $telefono;
/**
* @var integer
*
* @ORM\Column(name="areaCel", type="integer")
*/
private $areaCel;
/**
* @var integer
*
* @ORM\Column(name="celular", type="integer")
*/
private $celular;
/**
* @ORM\OneToOne(targetEntity="User", inversedBy="datos")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
private $personales;
/**
* @var string
*
* @ORM\Column(name="email", type="string")
*/
private $email;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set empresa
*
* @param string $empresa
* @return Datos
*/
public function setEmpresa($empresa)
{
$this->empresa = $empresa;
return $this;
}
/**
* Get empresa
*
* @return string
*/
public function getEmpresa()
{
return $this->empresa;
}
/**
* Set cuit
*
* @param integer $cuit
* @return Datos
*/
public function setCuit($cuit)
{
$this->cuit = $cuit;
return $this;
}
/**
* Get cuit
*
* @return integer
*/
public function getCuit()
{
return $this->cuit;
}
/**
* Set localidad
*
* @param string $localidad
* @return Datos
*/
public function setLocalidad($localidad)
{
$this->localidad = $localidad;
return $this;
}
/**
* Get localidad
*
* @return string
*/
public function getLocalidad()
{
return $this->localidad;
}
/**
* Set calle
*
* @param string $calle
* @return Datos
*/
public function setCalle($calle)
{
$this->calle = $calle;
return $this;
}
/**
* Get calle
*
* @return string
*/
public function getCalle()
{
return $this->calle;
}
/**
* Set altura
*
* @param integer $altura
* @return Datos
*/
public function setAltura($altura)
{
$this->altura = $altura;
return $this;
}
/**
* Get altura
*
* @return integer
*/
public function getAltura()
{
return $this->altura;
}
/**
* Set telefono
*
* @param integer $telefono
* @return Datos
*/
public function setTelefono($telefono)
{
$this->telefono = $telefono;
return $this;
}
/**
* Get telefono
*
* @return integer
*/
public function getTelefono()
{
return $this->telefono;
}
/**
* Set area
*
* @param integer $area
* @return Datos
*/
public function setAreaTel($areaTel)
{
$this->areaTel = $areaTel;
return $this;
}
/**
* Get area
*
* @return integer
*/
public function getAreaTel()
{
return $this->areaTel;
}
/**
* Set celular
*
* @param integer $celular
* @return Datos
*/
public function setCelular($celular)
{
$this->celular = $celular;
return $this;
}
/**
* Get celular
*
* @return integer
*/
public function getCelular()
{
return $this->celular;
}
/**
* Set areaCel
*
* @param integer $areaCel
* @return Datos
*/
public function setAreaCel($areaCel)
{
$this->areaCel = $areaCel;
return $this;
}
/**
* Get areaCel
*
* @return integer
*/
public function getAreaCel()
{
return $this->areaCel;
}
/**
* Set email
*
* @param integer $email
* @return Datos
*/
public function setEmail($email)
{
$this->email = $email;
return $this;
}
/**
* Get email
*
* @return integer
*/
public function getEmail()
{
return $this->email;
}
/**
* Set personales
*
* @param string $personales
* @return Datos
*/
public function setPersonales($personales)
{
$this->personales = $personales;
return $this;
}
/**
* Get personales
*
* @return string
*/
public function getPersonales()
{
return $this->personales;
}
}
我的数据类型:
<?php
namespace Proyecto\LavocBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
class DatosType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('empresa');
$builder->add('cuit');
$builder->add('localidad');
$builder->add('calle');
$builder->add('altura');
$builder->add('areaTel');
$builder->add('telefono');
$builder->add('areaCel');
$builder->add('celular');
}
public function getName()
{
return 'datos_form';
}
}
咨询了controller,但是不知道怎么做。现在,不喜欢将我收到的数据转储到表格中。
非常感谢,抱歉给您带来麻烦
我想你想做的可以按照以下步骤完成:
- 首先将您的用户数据收集到我们将调用的变量中
$user
然后,给这个 $user
以你的形式补充水分,就像这样:
$form = $this->createForm(new UserType(), $user);
像往常一样对待你的表格。在实体中找到的值应自动填充到您的表单中。
希望对您有所帮助。
您的操作可能是这样的:
public function editAction($id)
{
$em = $this->getDoctrine()->getManager();
$entity = $em->getRepository('LavocBundle:User')->find($id);
if (!$entity) {
throw $this->createNotFoundException('Unable to find User entity.');
}
$editForm = $this->createForm(new UserType(), $entity);
return array(
'entity' => $entity,
'edit_form' => $editForm->createView(),
);
}
我的问题是:我有一个包含用户数据的实体,例如:
- 年龄
- 名字
- 姓氏
- 地址
- phone
- ...
我的目标是制作一个表单,其中使用查询可以获取所有这些数据并用数据填充我的表单,以便用户可以在您更改单元格或更改方向时修改它他家
我和公司已经做好了实体 和表格,参考一下table就可以了。我的问题是如何使用从 table 获得的数据填充表单字段。
我的实体 (DatosEntity):
<?php
namespace Proyecto\LavocBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Datos
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="Proyecto\LavocBundle\Entity\DatosRepository")
*/
class Datos
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="empresa", type="string", length=50)
*/
private $empresa;
/**
* @var integer
*
* @ORM\Column(name="cuit", type="integer")
*/
private $cuit;
/**
* @var string
*
* @ORM\Column(name="localidad", type="string", length=50)
*/
private $localidad;
/**
* @var string
*
* @ORM\Column(name="calle", type="string", length=40)
*/
private $calle;
/**
* @var integer
*
* @ORM\Column(name="altura", type="integer")
*/
private $altura;
/**
* @var integer
*
* @ORM\Column(name="areaTel", type="integer")
*/
private $areaTel;
/**
* @var integer
*
* @ORM\Column(name="telefono", type="integer")
*/
private $telefono;
/**
* @var integer
*
* @ORM\Column(name="areaCel", type="integer")
*/
private $areaCel;
/**
* @var integer
*
* @ORM\Column(name="celular", type="integer")
*/
private $celular;
/**
* @ORM\OneToOne(targetEntity="User", inversedBy="datos")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
private $personales;
/**
* @var string
*
* @ORM\Column(name="email", type="string")
*/
private $email;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set empresa
*
* @param string $empresa
* @return Datos
*/
public function setEmpresa($empresa)
{
$this->empresa = $empresa;
return $this;
}
/**
* Get empresa
*
* @return string
*/
public function getEmpresa()
{
return $this->empresa;
}
/**
* Set cuit
*
* @param integer $cuit
* @return Datos
*/
public function setCuit($cuit)
{
$this->cuit = $cuit;
return $this;
}
/**
* Get cuit
*
* @return integer
*/
public function getCuit()
{
return $this->cuit;
}
/**
* Set localidad
*
* @param string $localidad
* @return Datos
*/
public function setLocalidad($localidad)
{
$this->localidad = $localidad;
return $this;
}
/**
* Get localidad
*
* @return string
*/
public function getLocalidad()
{
return $this->localidad;
}
/**
* Set calle
*
* @param string $calle
* @return Datos
*/
public function setCalle($calle)
{
$this->calle = $calle;
return $this;
}
/**
* Get calle
*
* @return string
*/
public function getCalle()
{
return $this->calle;
}
/**
* Set altura
*
* @param integer $altura
* @return Datos
*/
public function setAltura($altura)
{
$this->altura = $altura;
return $this;
}
/**
* Get altura
*
* @return integer
*/
public function getAltura()
{
return $this->altura;
}
/**
* Set telefono
*
* @param integer $telefono
* @return Datos
*/
public function setTelefono($telefono)
{
$this->telefono = $telefono;
return $this;
}
/**
* Get telefono
*
* @return integer
*/
public function getTelefono()
{
return $this->telefono;
}
/**
* Set area
*
* @param integer $area
* @return Datos
*/
public function setAreaTel($areaTel)
{
$this->areaTel = $areaTel;
return $this;
}
/**
* Get area
*
* @return integer
*/
public function getAreaTel()
{
return $this->areaTel;
}
/**
* Set celular
*
* @param integer $celular
* @return Datos
*/
public function setCelular($celular)
{
$this->celular = $celular;
return $this;
}
/**
* Get celular
*
* @return integer
*/
public function getCelular()
{
return $this->celular;
}
/**
* Set areaCel
*
* @param integer $areaCel
* @return Datos
*/
public function setAreaCel($areaCel)
{
$this->areaCel = $areaCel;
return $this;
}
/**
* Get areaCel
*
* @return integer
*/
public function getAreaCel()
{
return $this->areaCel;
}
/**
* Set email
*
* @param integer $email
* @return Datos
*/
public function setEmail($email)
{
$this->email = $email;
return $this;
}
/**
* Get email
*
* @return integer
*/
public function getEmail()
{
return $this->email;
}
/**
* Set personales
*
* @param string $personales
* @return Datos
*/
public function setPersonales($personales)
{
$this->personales = $personales;
return $this;
}
/**
* Get personales
*
* @return string
*/
public function getPersonales()
{
return $this->personales;
}
}
我的数据类型:
<?php
namespace Proyecto\LavocBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
class DatosType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('empresa');
$builder->add('cuit');
$builder->add('localidad');
$builder->add('calle');
$builder->add('altura');
$builder->add('areaTel');
$builder->add('telefono');
$builder->add('areaCel');
$builder->add('celular');
}
public function getName()
{
return 'datos_form';
}
}
咨询了controller,但是不知道怎么做。现在,不喜欢将我收到的数据转储到表格中。
非常感谢,抱歉给您带来麻烦
我想你想做的可以按照以下步骤完成:
- 首先将您的用户数据收集到我们将调用的变量中
$user
然后,给这个
$user
以你的形式补充水分,就像这样:$form = $this->createForm(new UserType(), $user);
像往常一样对待你的表格。在实体中找到的值应自动填充到您的表单中。
希望对您有所帮助。
您的操作可能是这样的:
public function editAction($id)
{
$em = $this->getDoctrine()->getManager();
$entity = $em->getRepository('LavocBundle:User')->find($id);
if (!$entity) {
throw $this->createNotFoundException('Unable to find User entity.');
}
$editForm = $this->createForm(new UserType(), $entity);
return array(
'entity' => $entity,
'edit_form' => $editForm->createView(),
);
}