0

さて、私は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問題なく動作します...しかし、エラーや動作しない理由はわかりません..

4

1 に答える 1

0

空白のページは、解析エラーまたはエンジン エラーが発生したことを示します。php.ini ファイルを変更して、display_errors をオンにすることをお勧めします。

その後、必ずウェブサーバーを再起動してください。

于 2012-06-06T02:46:56.127 に答える