Php Symfony表单验证传递数组值
我是新来的。这里我尝试验证JSON参数,但无法读取数组值Php Symfony表单验证传递数组值,php,arrays,json,symfony,validation,Php,Arrays,Json,Symfony,Validation,我是新来的。这里我尝试验证JSON参数,但无法读取数组值customer是我的json对象,它不带数组,正在工作。如果为批量数据插入添加数组,则无法读取数组值 我的代码: $mydata = $request->get('customer'); $formOptions = []; $formOptions['isactive'] = true; foreach($mydata as $val) { $form = $this->get('form.factory')->
customer
是我的json对象,它不带数组,正在工作。如果为批量数据插入添加数组,则无法读取数组值
我的代码:
$mydata = $request->get('customer');
$formOptions = [];
$formOptions['isactive'] = true;
foreach($mydata as $val)
{
$form = $this->get('form.factory')->createNamed(
'customer',
CustomerRegistrationFormType::class,
null,
$formOptions
);
$form->handleRequest($request);
if ($form->isValid())
{
return "sucess";
}
else{
return $this->view($form->getErrors(), Response::HTTP_BAD_REQUEST);
}
}
这里是我的JSON请求参数:
{
"customer" :
[
{
"firstName": "asdfasdfasdfsdf",
"lastName": "asfd",
"gender": "male",
"email": "sddssddsdkj@sdf.vb",
"phone": "1232547890",
"birthDate": "1991-08-22",
"createdAt": "2017-09-08T11:18:35.605630+00:00",
"Number": "2331313423",
"agreement1": "true",
"agreement2": "true",
"agreement3": "true",
"referral_email": "sdjndsdfreksjd@cgh.fg"
},
{
"firstName": "ldkfasdfsdmnlsmn",
"lastName": "sjdasdffn",
"gender": "male",
"email": "sddssdasdfsdfff23dsdkj@sdf.vb",
"phone": "1232111890",
"birthDate": "1991-08-22",
"createdAt": "2017-09-08T11:18:35.605630+00:00",
"Number": "8824413423",
"agreement1": "true",
"agreement2": "true",
"agreement3": "true",
"referral_email": "sdsdf12jndrsdeksjd@cgh.fg"
}
]
}
如何将数组值发送到get('form.factory')
在foreach
中,所有对象都有数组元素。如何将这些数组元素发送到
$form = $this->get('form.factory')->createNamed(
'customer',
CustomerRegistrationFormType::class,
null,
$formOptions
)
我可以使用$val代替customer(对象名),但它不起作用。若我移除数组并发送单个对象,它就正常工作了
我的客户注册表单类型
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('firstName', TextType::class, [
'label' => 'First name',
'required' => true,
'constraints' => [
new NotBlank(),
],
]);
$builder->add('lastName', TextType::class, [
'label' => 'Last name',
'required' => true,
'constraints' => [
new NotBlank(),
],
]);
$builder->add('gender', ChoiceType::class, [
'label' => 'Gender',
'required' => false,
'choices' => [
'male' => 'male',
'female' => 'female',
],
]);
$builder->add('email', EmailType::class, [
'label' => 'Email',
'required' => true,
'constraints' => [
new NotBlank(),
new Email(),
],
]);
$builder->add('phone', EmailType::class, [
'label' => 'Phone',
'required' => false,
]);
$builder->add('birthDate', DateType::class, [
'label' => 'Birth date',
'required' => false,
'widget' => 'single_text',
'format' => 'yyyy-MM-dd',
]);
$builder->add('createdAt', DateTimeType::class, [
'label' => 'Creation date',
'required' => false,
'widget' => 'single_text',
'format' => DateTimeType::HTML5_FORMAT,
]);
$builder->add('Number', TextType::class, [
'label' => 'Loyalty card number',
'required' => false,
]);
$builder->add('agreement1', CheckboxType::class, [
'required' => true,
'constraints' => [
new NotBlank(),
],
]);
$builder->add('agreement2', CheckboxType::class, [
'required' => false,
]);
$builder->add('agreement3', CheckboxType::class, [
'required' => false,
]);
$builder->add('referralemail', TextType::class, [
'required' => false,
]);
}
卡比兰,请阅读-总结是,这不是一个理想的方式来解决志愿者,可能是反作用,以获得答案。请不要将此添加到您的问题中。您能显示CustomerRegistrationFormType类吗?@halfer我想问题是,当我编辑时,帖子的作者做了一些更改。谢谢你的修复。啊,是的@Roberto,抱歉-我现在可以看到编辑时间已经接近了。谢谢。卡比兰,请阅读-总结是,这不是一个理想的方式来解决志愿者,可能会适得其反获得答案。请不要将此添加到您的问题中。您能显示CustomerRegistrationFormType类吗?@halfer我想问题是,当我编辑时,帖子的作者做了一些更改。谢谢你的修复。啊,是的@Roberto,抱歉-我现在可以看到编辑时间已经接近了。谢谢