17

私はsymfony2を使用しており、あるユーザーの関係をいくつかのルールに保存するフォームを持っています。これらのルールは、会社の管理者ユーザーによって設定されます。このフォームでは、更新するユーザーを選択した後、このユーザーが許可するルールを選択する必要があります。

問題は、同じ名前 (別のエンティティ) のルールが複数ある可能性がありますが、値が異なることです。したがって、selectbox を作成するときは、次のように名前と値を表示する必要があります。

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

しかし今では、次のコードを使用して「- $value」なしで表示できます。

$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().

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

4

1 に答える 1

32

はい、getUniqueName()次のようにエンティティ クラスでメソッドを定義します。

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

propertyフォーム オプションを編集します。

'property' => 'childEntity.uniqueName',

すべてのフォームでオプションの設定を繰り返さないようにするために、オプションを省略して同じ方法でメソッドpropertyを定義することもできます。__toString()property

于 2012-10-25T14:28:34.410 に答える