2012-04-18 3 views
0

Хорошо, поэтому я использую Symfony2, и я пытаюсь создать окно опций в этой форме, основанной от другого субъекта ...Symfony2 форма от лица

Так в моем контроллере у меня есть:

<?php 

namespace Ecs\CrmBundle\Controller\Report; 

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Symfony\Component\HttpFoundation\Request; 
use Symfony\Component\HttpFoundation\Response; 
use Ecs\CrmBundle\Form\Report\TimeClockReportType; 

class TimeClockReportController extends Controller 
{ 
    public function indexAction() 
    { 
     $request = $this->get('request'); 
     $em = $this->getDoctrine()->getEntityManager(); 
     $start = null; 
     $end = null; 
     $dateRangeForm = $this->createForm(new TimeClockReportType()); 

     if ($request->getMethod() == 'POST') 
     { 
      $dateRangeForm->bindRequest($request); 
      $formData = $dateRangeForm->getData(); 

      $start = $formData['dateRange']['startDate']; 
      $end = $formData['dateRange']['endDate']; 
     } 

     return $this->render('EcsCrmBundle:Reports:TimeClockReport.html.twig', array(
      'start' => $start, 
      'end' => $end, 
      'form' => $dateRangeForm->createView(), 
     )); 
    } 

} 

и мой TimeClockReportType.php выглядит следующим образом:

<?php 

namespace Ecs\CrmBundle\Form\Report; 

use Symfony\Component\Form\AbstractType; 
use Symfony\Component\Form\FormBuilder; 

use Ecs\CrmBundle\Form\Parts\DateRangeType; 
use Ecs\CrmBundle\Form\Parts\DepartmentSelectionType; 


class TimeClockReportType extends AbstractType 
{ 
    public function buildForm(FormBuilder $builder, array $options) 
    { 
     $builder 
      ->add('dateRange', new DateRangeType()) 
      ->add('salesCompany', new DepartmentSelectionType(true)); 
    } 

    public function getName() 
    { 
     return 'ecs_crmbundle_TimeClockReportType'; 
    } 

} 

и мой DepartmentSelectionType выглядит следующим образом:

<?php 

namespace Ecs\CrmBundle\Form\Parts; 

use Symfony\Component\Form\AbstractType; 
use Symfony\Component\Form\FormBuilder; 

class DepartmentSelectionType extends AbstractType 
{ 
    private $canSeeAll = false; 

    public function __construct($canSeeAll = false) 
    { 
     $this->canSeeAll = $canSeeAll; 
    } 

    public function buildForm(FormBuilder $builder, array $options) 
    { 
     $builder 
      ->add('department', 'entity', 
       array(
        'class' => "EcsAgentManagerBundle:EmployeeDepartment", 
        'required' => false, 
        'multiple' => true, 
        'expanded' => true, 
        'label' => "Department")) 
     ; 
    } 

    public function getDefaultOptions(array $options) 
    { 
     return array(
      'data_class' => 'Ecs\AgentManagerBundle\Entity\EmployeeDepartment', 
     ); 
    } 

    public function getName() 
    { 
     return 'ecs_crmbundle_departmentselectiontype'; 
    } 
} 

Проблема, что я иду с, как я получаю только пустой белый экран ... Но, если я удалить:

->add('salesCompany', new DepartmentSelectionType(true)) из TimeClockReportType он работает просто отлично ... Но Я не вижу ошибок или почему это не работает.

ответ

0

Пустая страница указывает на ошибку синтаксического анализа/ошибку двигателя. Я бы предложил изменить файл php.ini, чтобы включить display_errors.

Обязательно перезагрузите веб-сервер после.

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