【问题标题】:How to get the name of the form - Symfony2如何获取表单的名称 - Symfony2
【发布时间】:2012-08-07 07:26:59
【问题描述】:

我将 Symfony2 与 Doctrine 和 Twig 一起使用。我以这种方式创建了两个表单:

class PaymentsType extends AbstractType
{
    public function buildForm(FormBuilder $builder, array $options)
    {
        $builder->add('date', 'date', array('widget' => 'single_text', 'format' => 'yyyy-MM-dd', 'required'  => false));
        // ...
    }

    public function getName()
    {
        return 'payments';
    } 
}

第二个类似,但 getName() 返回 'edit'

每个都有自己的提交按钮。如何获取按下提交按钮的表单的名称?我想做的事情是找到一种方法让控制器识别按下了哪个按钮,因为每个按钮都应该让不同的事情发生。

【问题讨论】:

  • 为什么不简单地使用两个单独的控制器来处理表单?

标签: php symfony doctrine


【解决方案1】:

以下应该有效:

public function processAction(Request $request)
{
    $form_a = $this->createForm(new FormAType());
    $form_b = $this->createForm(new FormBType());

    if ($request->request->has($form_a->getName())) {
        // form a was sent
    } else if ($request->request->has($form_b->getName())) {
        // form b was sent
    }

    // any additional code
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    • 2010-09-19
    相关资源
    最近更新 更多