Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony表单验证传递数组值_Php_Arrays_Json_Symfony_Validation - Fatal编程技术网

Php Symfony表单验证传递数组值

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')->

我是新来的。这里我尝试验证JSON参数,但无法读取数组值
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,抱歉-我现在可以看到编辑时间已经接近了。谢谢