2017-02-06 4 views
0

は、私は、エンティティCarがあるとします。Symfony - [EntityName] Type.php内の[EntityName] .orm.ymlから値にアクセスする方法

Class Car { 

    $private name; 
    //... 
} 

とDoctrineのための適切なCar.orm.ymlファイル:

:私は Car.orm.ymlファイルの length値にアクセスする適切な CarTypeクラスインサイド

...\Bundle\CarBundle\Entity\Car: 
... 
fields: 
    name: 
    type: string 
    length: 100 
    ... 

class CarType extends AbstractType { 

    public function buildForm(FormBuilderInterface $builder, array $options) { 
     $builder 
      ->add('name', TextType::class, array(
       'attr' => array('maxlength' => 100),// Access length here! 
      )) 
      //... 
    } 
} 

にアクセスするにはどうすればよいですかCar.orm.ymlの値はCarTypeクラスですか?

答えて

1

これはすべてエンティティメタデータからアクセスできます。

  1. http://symfony.com/doc/current/form/form_dependencies.html#define-your-form-as-a-service

  2. 依存関係としてエンティティマネージャを追加します。完全なクラス名を経由して

  3. ゲットクラスのメタデータ:

    $classMetadata = $em->getClassMetadata('Bundle\CarBundle\Entity\Car') 
    
  4. は、フィールド定義を取得します。

    $classMetadata->getFieldMapping('name')['length'] 
    
関連する問題