1

クラスのないフォームがあります

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からすべてのチェックボックスを設定する方法は? クラス定義は(セッターとゲッターを削除しました)

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();
    }
}
4

2 に答える 2

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),
            )
    );
于 2012-05-28T06:30:13.997 に答える
0

すべての DisabilityType でフォームを初期化する必要があります

あなたはそのようにこれを行うことができます:

$disabilities = $this->getDoctrine()->getRepository("AldenXyzBundle:DisabilityType")-  >findAll();
$form = $this->createForm(new \Alden\XyzBundle\Form\Type\ProfilesSearchType(), $disabilities);
于 2012-05-25T08:32:14.543 に答える