2012-10-25 7 views
16

でエンティティフォームフィールドを作成し、いくつかのルールに一人のユーザーの関係を保存するためのフォームを持っています。これらのルールは、会社の管理者によって設定されます。このフォームでは、更新するユーザーを選択した後、このユーザーに許可を与えるルールを選択する必要があります。symfonyの2は私が<em>Symfony2の</em>を使用しています2つのプロパティ

問題は、同じ名前(別のエンティティ)のルールが複数ある可能性がありますが、値が異なることです。私は、選択ボックスを構築するときに、私は次のように名前と値を表示する必要があります。

  1. アイテムの数量 - 項目の10
  2. 数量 - アイテムの20
  3. 値 - の200
  4. 値項目 - 500

しかし、今、私はちょうどずに表示することができます - 怒鳴るコードを使用して、 "$値":

$form = $this->createFormBuilder()->add('myinput', 'entity', array(
        'class' => 'myBundle:Rule', 
        'property' => 'childEntity.name', 
        'label' => 'Filas Permitidas', 
        'expanded' => false, 
        'multiple' => true, 
        'choices' => $this->getDoctrine() 
          ->getRepository('MyBundle:Rule') 
          ->findAll(), 
        'required' => true, 
       ))->getForm(); 

プロパティとして私は$myEntity->getChildEntity()->getName()$myEntity->getValue()を得たかったのです。

これを実行する方法はありますか?

答えて

31

はい、エンティティクラスのgetUniqueName()方法などの定義:またpropertyオプションを省略し、同じ__toString()方法を定義することができます

'property' => 'childEntity.uniqueName', 

public function getUniqueName() 
{ 
    return sprintf('%s - %s', $this->name, $this->value); 
} 

をそしてpropertyフォームオプションを編集すべての形式でpropertyオプションの設定を繰り返さないようにしてください。

+1

ありがとう! – PedroHCan

+0

Spot on!おめでとう.. – medina

関連する問題