Forms Symfony 2.1:如何根据下拉列表中的“我的用户”设置默认值
我想创建一个带有下拉列表和文本字段的表单。 我的下拉列表包含“我的代理实体”和“我的文本字段”的值(周数)。 我想根据连接的用户设置默认值,但不知道如何设置 我已修改我的实体、我的表单和我的控制器: 我与我的代理关系有实体周:Forms Symfony 2.1:如何根据下拉列表中的“我的用户”设置默认值,forms,symfony,selectedindex,Forms,Symfony,Selectedindex,我想创建一个带有下拉列表和文本字段的表单。 我的下拉列表包含“我的代理实体”和“我的文本字段”的值(周数)。 我想根据连接的用户设置默认值,但不知道如何设置 我已修改我的实体、我的表单和我的控制器: 我与我的代理关系有实体周: class Week { /** * @var integer * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ pri
class Week
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
*
* @ORM\ManyToOne(targetEntity="Agency", inversedBy="week", cascade={"persist"})
* @ORM\JoinColumn(name="agency_id", referencedColumnName="id")
*/
private $agency;
/**
* @var integer
*
* @ORM\Column(name="week_number", type="integer")
*/
private $week_number;
/**
* @var \DateTime
*
* @ORM\Column(name="week_start", type="datetime")
*/
private $week_start;
/**
* @var \DateTime
*
* @ORM\Column(name="week_end", type="datetime")
*/
private $week_end;
public function getAgency()
{
return $this->agency;
}
.... public function get.....
}
然后我的代理实体:
class Agency
{
/**
* @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=50)
*/
private $name;
/**
* @var integer
*
* @ORM\Column(name="nb_team", type="integer")
*/
private $nb_team;
/**
* @var \DateTime
*
* @ORM\Column(name="date_creation", type="datetime")
*/
private $date_creation;
/**
*
* @ORM\OneToMany(targetEntity="Week", mappedBy="agency", cascade={"persist"})
*/
private $week;
public function .....
}
我的表格:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('agency', 'entity', array(
'class' => 'MyProjectBundle:Agency',
'property' => 'name',
/* 'query_builder' => function(\Doctrine\ORM\EntityRepository $er) {
return $er->createQueryBuilder('a')->orderBy('a.name', 'ASC');
},*/
'attr' => array('onchange' => 'javascript:this.form.submit();')
))->add('week_number', 'text');
}
和我的控制器:
$num_week = 4;
$id = 3;
$agency_id = $em->getRepository('MyProjectBundle:Agency')->find($id);
$week = $em->getRepository('MyProjectBundle:Week')->WeekExiste($num_week, $week_start, $agency_id);
$form2 = $this->createForm(new FormType(), $week);
if ($request->isMethod('POST')) {
$form2->bind($request);
$data = $form2->getData();
$agency = $data['agency'];
}
else {
$agency = $em->getRepository('MyProjectBundle:Agency')->find($id);
}
$week返回正确的实体。
我的表单适用于“周号”字段,但我的下拉列表没有选择我在控制器中设置的代理。我的默认选项值也有同样的问题,您可以在我的问题上检查它
我共享了完整的代码。
请出示您的控制员我已编辑了我的问题。请出示您的实体类别(国家/地区)我已用所有信息编辑了我的帖子。现在我有一个与机构(而不是国家)有关系的实体。我认为在我的班级形式中有一个问题,那就是选择我在班长中设置的好代理。我在你的问题中找不到问题所在。。。