私は、別のユーザーボタンの追加をクリックして複数のユーザー情報を追加できるフィールドを持つフォームを持っています。Symfony検証コンポーネント多次元フォームデータ
サーバー側では、必要に応じてすべてのファーストネームとラストネームを検証する必要があります。
私の問題は、fnameやlnameのようなデータの繰り返しを検証する方法はわかりません。
$stripToken = $request->request->get('stripeToken');
$input = $request->request->all();
var_dump($input);
try {
$constraint = new Assert\Collection(array(
'fields' => array(
'guest_fname' => new Assert\All(array(
'constraints' => array(
new Assert\NotBlank(),
new Assert\MinLength(array('limit' => 2))
)
)),
'guest_lname' => new Assert\All(array(
'constraints' => array(
new Assert\NotBlank(),
new Assert\MinLength(array('limit' => 2))
)
))
),
'allowMissingFields' => true,
));
}catch (\Exception $e) {
return $e->getMessage();
}
$errors = $this->app['validator']->validate($input, $constraint);
このコードは、入力のworking.Theのvar_dumpはAssert\All()
はあなたのケースで十分だろうしながら、あなたはAssert\Collection()
内Assert\All()
をラップしている
array(6) {
["guest_fname"]=>
array(3) {
[0]=>
string(3) "asdd"
[1]=>
string(6) "asdasd"
[2]=>
string(9) "asdasdasd"
}
["guest_lname"]=>
array(3) {
[0]=>
string(6) "asdasd"
[1]=>
string(6) "asdasd"
[2]=>
string(9) "asdasdasd"
}
["guest_email"]=>
array(1) {
[0]=>
string(0) ""
}
["guest_phone"]=>
array(1) {
[0]=>
string(0) ""
}
["guest_count"]=>
string(1) "1"
["stripeToken"]=>
string(28) "tok_234234234234234"
}
* FormType(実際にフォームビルダーにフィールドを追加する部分)の関連部分を質問に追加できますか? – nifr
@nifr質問を更新しました。私はFormTypeを使用していません。 –