Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.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_Symfony - Fatal编程技术网

Php 处理请求后更改Symfony表单操作

Php 处理请求后更改Symfony表单操作,php,symfony,Php,Symfony,我得到了一个symfony2表单,它是使用createForm创建的。表单验证后,我需要修改最初设置的操作。这可能吗 $formData = $this->loadData($id); // Form builder $form = $this->createForm(new ComposeForm(), $formData, [ 'action' => $$this->generateUrl('defaultAction') ]); // Processin

我得到了一个symfony2表单,它是使用createForm创建的。表单验证后,我需要修改最初设置的操作。这可能吗

$formData = $this->loadData($id);

// Form builder
$form = $this->createForm(new ComposeForm(), $formData, [
    'action' => $$this->generateUrl('defaultAction')
]);

// Processing form
$form->handleRequest($request);

if ($form->isSubmitted() && $form->isValid()) {
    $data = $form->getData();

    $myVar = $form->get('myVar')->isClicked();
    if ($myVar) {
        // Can I change the form action here??
    }
}

在控制器中非常简单:

if ($myVar) {
        $form->setAction($this->generateUrl('target_route'))
    }

但我看不出这样做的意义。

在控制器中这是非常直接的:

if ($myVar) {
        $form->setAction($this->generateUrl('target_route'))
    }

但是我看不出这样做有什么意义。

你为什么要这样做?表单通常由一个操作处理。有两个提交按钮可触发不同的操作。在这两种情况下,我都想通过POST提交表格,因此重定向似乎不是一个选项。您能详细解释一下您想在问题中做什么吗?我猜你的目标走错了方向,但我不知道你想要实现什么。我很想知道我发布的内容是否可行,因为我在任何地方都找不到如何实现。也许,正如你所指出的,用这种方法解决问题不是一个好主意。你为什么要这样做?表单通常由一个操作处理。有两个提交按钮可触发不同的操作。在这两种情况下,我都想通过POST提交表格,因此重定向似乎不是一个选项。您能详细解释一下您想在问题中做什么吗?我猜你的目标走错了方向,但我不知道你想要实现什么。我很想知道我发布的内容是否可行,因为我在任何地方都找不到如何实现。可能,正如您所指出的,这样解决问题不是一个好主意。以前尝试过,我得到了:致命错误:调用未定义的方法Symfony\Component\Form\Form::setAction()$this->createForm()做什么?该方法包含在控制器类中,基本上它创建了一个表单实例。为什么setAction不起作用,我不确定。之前尝试过,我得到了:致命错误:调用未定义的方法Symfony\Component\Form\Form::setAction()$this->createForm()有什么作用?该方法包含在Controller类中,基本上它创建了一个表单实例。为什么setAction不起作用,我不确定。