2012-04-18 99 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'; 
    } 
} 

说我来了,是我得到只是一个空白屏幕...但是,如果我删除的问题:

从它工作得很好的TimeClockReportType->add('salesCompany', new DepartmentSelectionType(true)) ...但是我看不到任何错误或为什么它不起作用。

回答

0

空白页面表示发生了分析错误/引擎错误。我会建议改变你的php.ini文件来使display_errors。

确保在重新启动您的网络服务器后。