我想创建一个表单,仅从一个选择列表开始,其中包含从数据库中选择的值。
这是实体区域,我想用区域填充下拉列表。
<?php
namespace Reuzze\ReuzzeBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Regions
*
* @ORM\Table(name="regions")
* @ORM\Entity
*/
class Regions
{
/**
* @var integer
*
* @ORM\Column(name="region_id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
protected $regionId;
/**
* @var string
*
* @ORM\Column(name="region_name", type="string", length=45, nullable=false)
*/
protected $regionName;
/**
* Get regionId
*
* @return integer
*/
public function getRegionId()
{
return $this->regionId;
}
/**
* Set regionName
*
* @param string $regionName
* @return Regions
*/
public function setRegionName($regionName)
{
$this->regionName = $regionName;
return $this;
}
/**
* Get regionName
*
* @return string
*/
public function getRegionName()
{
return $this->regionName;
}
}
这是我的表格:
class RegionType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('regionName' , 'text', array(
'label' => 'Region Name',
'attr' => array('placeholder' => 'Region Name')
));
}
public function getName()
{
return 'region';
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Reuzze\ReuzzeBundle\Entity\Regions',
));
}
}
但现在我想在选择列表中显示区域,而不是在文本框中输入名称。有谁知道我如何以我的形式做到这一点?我如何在我的 View 中显示它?
最佳答案
Symfony 文档中清楚地记录了这一点 - Choice Field
$builder->add('regions', 'entity', array(
'class' => 'ReuzzeReuzzeBundle:Regions',
'property' => 'regionName',
'expanded' => false,
'multiple' => false
));
像这样的事情应该会让你继续下去。
注意 此代码将放置在具有选择框的表单中。您可能不想只渲染一个没有其他任何东西的选择框。
更新
文档还向您展示了 how to render a form in a template .
在你的 Controller 中:
$region = new Region();
$form = $this->createForm(new RegionType(), $region ); //or create a different form
// ....
return $this->render('ReuzzeReuzzeBundle:Default:index.html.twig', array(
'form' => $form->createView(),
));
在 Twig 模板 index.html.twig
中:
{{ form_start(form) }}
{{ form_errors(form) }}
{{ form_row(form.regions) }
{{ form_end(form) }}
关于php - 使用数据库+ Symfony 2 和 Doctrine 中的值填充表单中的选择列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20909307/