首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自实体的symfony2表单

问来自实体的symfony2表单
EN

Stack Overflow用户
提问于 2012-04-19 04:40:30
回答 1查看 695关注 0票数 0

好的,我正在使用symfony2,并且我试图在这个表单中创建一个基于另一个实体的选项框……

所以在我的控制器中,我有:

代码语言:javascript
复制
<?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看起来像这样:

代码语言:javascript
复制
    <?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看起来像这样:

代码语言:javascript
复制
    <?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))它工作得很好...但是我看不到任何错误或者为什么它不能工作..

EN

回答 1

Stack Overflow用户

发布于 2012-06-06 10:46:56

空白页面表示发生了解析错误/引擎错误。我建议修改您的php.ini文件以启用display_errors。

之后请务必重新启动您的your服务器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10217608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档