2012-04-19 4 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; 
     } 
    ); 
}