You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Symfony 6搜索表单功能异常:无法跳转至结果页面且无报错信息

Symfony 6搜索表单功能异常:无法跳转至结果页面且无报错信息

我来帮你排查这个问题,看了你的代码后,很快发现了几个关键问题,咱们一步步解决:

  • 路由请求方法不匹配:这是最核心的问题!你的路由注解里只允许GET方法,但Symfony创建的表单默认是用POST方式提交的。当你点击提交按钮时,浏览器发送的是POST请求,可你的路由不接受POST请求,这就导致请求根本没进入表单处理的逻辑分支,直接回到了表单页面,自然也不会有报错提示。

    你只需要修改路由的methods配置,让它同时支持GET和POST:

    #[Route('/admin/actor/', name: 'app_actor_index', methods: ['GET', 'POST'])]
    
  • 表单渲染的小细节:另外要确认你的buscar.html.twig模板里,表单是用Symfony的Twig表单函数正确渲染的,比如要包含form_startform_end,还有提交按钮:

    {% extends 'base.html.twig' %}
    
    {% block body %}
        {{ form_start(form) }}
            {{ form_widget(form) }}
            <button type="submit">执行搜索</button>
        {{ form_end(form) }}
    {% endblock %}
    

    如果模板里没正确生成form标签或者提交按钮,也可能导致提交行为异常。

先把路由的问题改了,再测试一下,应该就能成功跳转到index1.html.twig看到“Hello”了。等跳转正常后,你再把注释掉的$actors = $actorRepository->searchactors($data);代码恢复,然后把数据传递给模板,比如:

return $this->render('actor/index1.html.twig', [
    'actors' => $actors
]);

这样就能在结果页展示搜索到的演员数据了。

备注:内容来源于stack exchange,提问作者Jorge H

火山引擎 最新活动