2012-04-19 5 views
0

이 내가 무엇을 얻을symfony2 치명적인 오류가

<?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'; 
    } 
} 

파일입니다 그것은 참조하고 있습니다 ... 문제가 될 수있는 어떤 아이디어?

답변

1

Symfony 2.1에서 FormTypeInterface가 변경되었다고 생각합니다.

getDefaultOptions 더 이상 인수가 필요하지 않습니다. UPGRADE-2.1 document에서

:


방법의 getDefaultOptions을()와 getAllowedOptionValues ​​() 형태의 유형은 더 이상 옵션 배열을받을 수 없습니다.

클로저를 대신 사용하여 다른 옵션에 의존하는 옵션을 지정할 수 있습니다.

전 :

public function getDefaultOptions(array $options) 
{ 
    $defaultOptions = array(); 

    if ($options['multiple']) { 
     $defaultOptions['empty_data'] = array(); 
    } 

    return $defaultOptions; 
} 

후 :

public function getDefaultOptions() 
{ 
    return array(
     'empty_data' => function (Options $options, $previousValue) { 
      return $options['multiple'] ? array() : $previousValue; 
     } 
    ); 
} 
관련 문제