Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.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
Symfony 将变量从窗体事件侦听器传递到控制器?_Symfony_Symfony Forms - Fatal编程技术网

Symfony 将变量从窗体事件侦听器传递到控制器?

Symfony 将变量从窗体事件侦听器传递到控制器?,symfony,symfony-forms,Symfony,Symfony Forms,我有一个与表单类型关联的事件侦听器,它运行以下代码: $builder->addEventListener( FormEvents::POST_SUBMIT, function (FormEvent $event) use ($options) { $entity = $event->getData(); $baseUrl= $options['baseUrl']; $fi

我有一个与表单类型关联的事件侦听器,它运行以下代码:

 $builder->addEventListener(
        FormEvents::POST_SUBMIT,
        function (FormEvent $event) use ($options) {

            $entity = $event->getData();

            $baseUrl= $options['baseUrl'];

            $fileNameOr="";
            $nombreFicheroInterno = $entity->getFile();

            $file = $entity->getFile();
            $fileName = $file->getClientOriginalName();

            $filePars = explode('.', $fileName);
            $fileNameOr = $filePars[0];
            $fileExtension = $filePars[1];

            if ($fileExtension == 'CSV' || $fileExtension == 'csv') {
                    $fileExtensionType = 2;
            } else if ($fileExtension == 'TXT' || $fileExtension == 'txt') {
                    $fileExtensionType = 1;
            }
            $separatorType= $entity->getSeparatorType()->getId();
            $numLineasCabecera = $entity->getHeadLinesNumber();
            $algoritmoTecnica = $entity->getAnalysisType()->getId();
            $algoritmoMetodo = $entity->getSubanalysisType()->getMethod();


            $filename = sha1(uniqid(mt_rand(), true)) . '.' . $nombreFicheroInterno->guessExtension();


            $nombreFicheroInterno->move($baseUrl . 'DBSpectra/MuestrasTemp', $filename);


            $res=shell_exec('sh '.$baseUrl.'run_DBSpectralMatching.sh /usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/ "'.$baseUrl.'" "'.$fileNameOr.'" "'.$filename.'" "['.$fileExtensionType.' '. $separatorType .' '.$numLineasCabecera.' '.$algoritmoTecnica.' '.$algoritmoMetodo. ' ' . '8888' .']"');

                           $baseUrl . 'DBSpectra/Resultados/' . $compoundId . '-MathDecision.' . $nombreTecnica . '.txt'
             );
如您所见,代码从提交的表单中获取数据,并执行Matlab算法。根据$res算法的结果,响应将是一个或另一个


如何将算法的变量$res传递给控制器以给出一个或另一个响应?或者我应该直接将代码放在控制器的eventlistener中吗

提供的任何解决方案都将是一种解决办法。仅仅是因为没有任何理由必须从表单侦听器内部调用MatLab

只需验证表单,从控制器内部获取所需的值,然后执行MatLab