【问题标题】:Symfony2 form result in subrequestSymfony2 表单导致子请求
【发布时间】:2016-11-28 22:25:08
【问题描述】:

我正在从基本树枝中重新编写我的标题树枝作为子请求。以下代码行位于基本树枝中。

{{ render(controller('MyBundle:Global:header')) }}

在标题树枝中有一个搜索表单。未链接到具有以下定义的任何实体。这是 TopSearchType 表单定义。

        $builder
        ->add('searchKey', 'text', array('mapped' => false))
        ->add('save', 'submit');

在子控制器中,我制作表单并按如下方式处理验证结果。

    $form = $this->createForm(new TopSearchType());
    $form->handleRequest($request);

    if ($form->isValid()) {
        dump($form['searchKey']->getData());
    }

表单生成了,结果没有触发?当我直接在基本树枝中运行相同的代码时,它工作正常。

【问题讨论】:

    标签: php forms symfony


    【解决方案1】:

    问题是,您的控制器的操作(全局:标题)是由 render 方法触发的,当您提交它时,它可能会转到您在页面上的操作,header 方法正在执行渲染。

    您可能应该只创建一个单独的操作来处理表单的发布,然后将其用作表单的操作。

    如果您想将用户重定向到当前页面,您可以添加一个隐藏字段来存储当前 URL,然后在搜索后将他重定向。

    【讨论】:

    • 你有一个例子说明如何捕捉动作并在单独的控制器中处理它吗?所以不可能在标头控制器中处理它,因为这已经是分开的了?这是我认为最好的解决方案。
    • 是的,您可以在标头控制器中处理它,这非常好。这已经发生了吗?你能检查表单的操作 URL 以查看它是否指向标头控制器的路由吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多