我有一个没有课程的表格
class ProfilesSearchType extends AbstractType {
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('disabilityType', 'entity', array(
'class' => 'AldenXyzBundle:DisabilityType',
'property' => 'name',
'multiple' => true,
'expanded' => true,
))
;
}
在控制器中调用
public function listAction()
{
$form = $this->createForm(
new \Alden\XyzBundle\Form\Type\ProfilesSearchType(), array());
if (isset($_GET['profile_search']))
{
$form->bindRequest($request);
$d = $form->getData();
// some stuff here
}
return array(
'form' => $form->createView()
);
}
如何将disabilityType中的所有复选框设置为默认选中状态? 类定义是(我删除了setter和getters)
class DisabilityType {
/**
* @var integer $disabilityTypeId
*
* @ORM\Column(name="disability_type_id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $disabilityTypeId;
/**
* @var string $name
*
* @ORM\Column(name="name", type="string", length=50, nullable=false)
*/
private $name;
/**
* @var Profile
*
* @ORM\ManyToMany(targetEntity="Profile", mappedBy="disabilityType")
*/
private $profile;
public function __construct()
{
$this->profile = new \Doctrine\Common\Collections\ArrayCollection();
}
}
答案 0 :(得分:1)
我在控制器中添加了
$disabilityDegree = $this->getDoctrine()->
getRepository("AldenXyzBundle:DisabilityDegree")->findAll();
$form = $this->createForm(new \Alden\XyzBundle\Form\Type\ProfilesSearchType(), array(
'disabilityType' => new \Doctrine\Common\Collections\ArrayCollection($disabilityType),
)
);
答案 1 :(得分:0)
您必须使用所有disabilityType
初始化您的表单 你可以这样做:$disabilities = $this->getDoctrine()->getRepository("AldenXyzBundle:DisabilityType")- >findAll();
$form = $this->createForm(new \Alden\XyzBundle\Form\Type\ProfilesSearchType(), $disabilities);