2012-03-15 2 views
4
$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(); 

Как я могу использовать выше код в классе FormType. Я использую этот запрос для генерации массива для типа выбора в построителе форм.Как получить репозиторий доктрины в классе типа формы в symfony2?

ответ

6

Я думаю, вы должны использовать тип entity, который имеет опцию query_builder.

Эта ссылка:

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

Описывает, как это сделать.

Если по какой-то причине вы действительно не хотите использовать тип entity, вы всегда можете получить данные в контроллере и передать его через конструктор FormType, который немного быстр 'n' грязный, но должен работать нормально. ..

контроллер:

$this->createForm(new MyFormType($results_from_qb), $form_data); 

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 
} 
+0

В форме сущности типа, как использовать вложенный запрос, потому что в моем случае я должен получить базу данных проекта на объекте projectallocation. –

+0

Существует определенно способ сделать это, не могли бы вы просто объяснить мне, как связаны эти два сущности? Uni/Двунаправленный? Cardinality? –

+1

У меня такая же проблема. У меня есть два объекта, которые я не хочу использовать между ними. Я нашел связанные вопросы и ответы: [Как передать данные formBuilder] (http://stackoverflow.com/questions/6716776/symfony-2-how-to-pass-data-to-formbuilder) и [Передача данных с контроллера ] (http://stackoverflow.com/questions/7807388/passing-data-from-controller-to-type-symfony2) – renoirb

Смежные вопросы