1
Symfony 2.8。私はフォームとしてカスタムエントリを持つコレクションを使用していますが、いくつかの制約が渡されています。symfonyコレクションタイプへの制約の受け渡し
FirstFormType.php
:今、私のコードは次のようになります
class FirstFormType extends AbstractFormType
{
/** @inheritdoc */
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('rates', CollectionType::class, [
'entry_type' => new SecondFormType([new LessThanOrEqual(300)]),
'allow_add' => true,
'allow_delete' => true,
'delete_empty' => true,
'constraints' => [
new NotBlank(),
new Count(['min' => 1]),
],
])
;
}
}
SecondFormType.php
:
class SecondFormType extends AbstractFormType
{
/** @var array */
private $constraints;
/** @param array $constraints */
public function __construct(array $constraints = [])
{
$this->constraints = $constraints;
}
/** @inheritdoc */
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('amount', NumberType::class, [
'scale' => 2,
'constraints' => array_merge($this->constraints, [new CustomConstraint()]),
])
;
}
}
はまた、私は
FirstFormType
としてではなく、
SecondFormType
に渡された他の制約と同じである
ThirdFormType
を、持っていました。しかし、私は
new SecondFormType([...])
をFQCNに置き換えたいと思います。私は制約をより正確に継承できると思います。どうすればいいですか?
これは、ありがとうございます! – Aliance