如何在symfony2中的表单类型类中获取doctrine存储库?

Raj*_*ani 5 formbuilder symfony

$repository = $this->getDoctrine()->getRepository('ParabolaEntityBundle:ProjectAllocation');
        $query = $repository->createQueryBuilder('p')
                ->where('p.startDate < :sdate and p.employee = :emp and p.endDate > :edate')
                ->setParameter('sdate', date('Y-m-d', time()))
                ->setParameter('edate', date('Y-m-d', time()))
                ->setParameter('emp', $employee->getId())
                ->getQuery();
        $projectAllocate = $query->getResult();
Run Code Online (Sandbox Code Playgroud)

我如何在FormType类中使用上面的代码.我正在使用此查询为表单生成器中的选择类型生成数组.

Jov*_*vic 6

我认为你应该使用entitytype而不是有一个query_builder选项.

这个链接:

http://symfony.com/doc/current/reference/forms/types/entity.html

描述如何做到这一点.

如果由于某种原因你真的不想使用entity类型,你总是可以在控制器中检索数据并通过FormType构造函数传递它,这有点快"脏"但应该工作得很好......

控制器:

$this->createForm(new MyFormType($results_from_qb), $form_data );
Run Code Online (Sandbox Code Playgroud)

FormType:

public function __construct($results_from_qb){
    $this->results_from_qb = $results_from_qb; // store it into class member field to be used latter in buildForm method
}
Run Code Online (Sandbox Code Playgroud)