で動作していない:symfonyの2.7選択肢のコールバックは、私は複数の選択肢のプロパティを持つクラスを持っている形
...
/**
* @ORM\Column(type="array", name="majority_types")
* @Constraints\Choice(callback="getAvailableMajorityTypes", multiple="true")
*/
private $majorityTypes;
...
public static function getAvailableMajorityTypes()
{
return array(
self::SIMPLE_MAJORITY,
self::UNANIMITY_MAJORITY,
self::THREE_FIFTHS_MAJORITY,
self::ONE_THIRD_MAJORITY,
self::FOUR_FIFTHS_MAJORITY
);
}
...
また、私はこのクラスのフォームクラスを持っている:
...
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
...
->add('majorityTypes', ChoiceType::class, array(
'multiple' => true,
))
...
->getForm();
}
/**
* @param OptionsResolver $resolver
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'MyClass',
));
}
しかしgetAvailableMajorityTypes
から選択レンダリングされません。
私は単に次の手順を実行しました:http://symfony.com/doc/master/reference/constraints/Choice.html#supplying-the-choices-with-a-callback-functionしかし、何らかの理由で動作しません。
編集:
は私が注釈として、静的な選択を使用してどちらの作品(choices={"foo1", "foo2"}
)ことを参照してください。唯一の方法は、フォームを作成するときにadd
メソッドで直接選択肢を渡すことです。私はまだ問題を発見していない。私はこの注釈を使用したことがありません
質問の最後の部分から:*フォームを作成するときに、addメソッドで直接選択肢を渡す方法があります。これがあなたが提案しているものです。ではない? – Manolo
はい、本当にありがとうございます。試した他のものは、HTMLフォームのレンダリングではなく、送信されたフォームの検証に関連しています。 – Guillaume
意味があります。 – Manolo