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))
...但是我看不到任何错误或为什么它不起作用。