Forms Symfony 3呈现表单请求错误

Forms Symfony 3呈现表单请求错误,forms,methods,request,symfony,Forms,Methods,Request,Symfony,在symfony3中,我有一个基本视图,在这个视图中,我呈现另一个控制器(这个控制器呈现窗体(返回带有窗体的视图-form是method POST)),当我尝试在页面对象请求中使用这个时,-isMethod()始终返回获取如何修复它 基本视图的一部分:(主控制器显示欢迎页面并在此页面内呈现) 呈现上述窗体的控制器 /** * @Route("/", name="login") * * @Template */ public function log

在symfony3中,我有一个基本视图,在这个视图中,我呈现另一个控制器(这个控制器呈现窗体(返回带有窗体的视图-form是method POST)),当我尝试在页面对象请求中使用这个时,-isMethod()始终返回获取如何修复它

基本视图的一部分:(主控制器显示欢迎页面并在此页面内呈现)

呈现上述窗体的控制器

/**
     * @Route("/", name="login")
     *
     * @Template
     */
    public function loginAction(Request $Request)
    {
        $Session = $this->get('session');


        if($Request->attributes->has(Security::AUTHENTICATION_ERROR)){
            $loginError = $Request->attributes->get(Security::AUTHENTICATION_ERROR);
        } else {
            $loginError = $Session->remove(Security::AUTHENTICATION_ERROR);
        }

        $loginForm = $this->createForm(LoginType::class, array(
            'username' => $userName = $Session->get(Security::LAST_USERNAME)
        ));


        return array(
            'loginError' => $loginError,
            'loginForm' => $loginForm->createView()
        );
    }
上面的小枝

    <button type="button" class="btn btn-success btn-sm" data-toggle="modal" data-target="#loginForm">
    Zaloguj
</button>
<div class="modal fade" id="loginForm" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                <h4 class="modal-title" id="myModalLabel">Logowanie</h4>
                {% if loginError is defined and loginError is not null %}
                    <div class="">
                        Blad i chuj: {{ loginError.message }}
                    </div>
                {% endif %}
            </div>
            <div class="modal-body">
                {% form_theme loginForm 'bootstrap_3_layout.html.twig' %}
                {{ form(loginForm, {'action': path('_check_path')}) }}
            </div>
            <div class="modal-footer">
                {{ render(controller('CommonUserBundle:Login:rememberPassword')) }}
                <button type="button" class="btn btn-default" data-dismiss="modal">Zamknij</button>
            </div>
        </div>
    </div>
</div>

扎洛古伊
&时代;
洛格瓦尼
{%如果定义了loginError且loginError不为空%}
Blad i chuj:{{loginError.message}
{%endif%}
{%form_主题登录表单'bootstrap_3_layout.html.twig%}
{{form(loginForm,{'action':path(''u check_path')}}}
{{render(controller('CommonUserBundle:Login:rememberPassword'))}
赞克尼

正如我所说,我在另一个twig tempalte上呈现这个表单,然后单击SUBMIT我的请求->getMethod is GET。在html中,all is ok method=“post”中,当我创建其他路由时,该路由仅指向他自己的表单(未呈现),其工作正常。如何将其更改为正常工作?

我认为这是因为您在标记中呈现表单。我解决了这个问题,它不是关于。如果您渲染其他渲染窗体的控制器。渲染表单路径是当前路径(不是控制器路由路径)要正确工作,我必须手动更改attr操作并设置在渲染控制器视图中渲染此表单的控制器的路径您可以用您修改的内容更新您的问题吗?@OlivierC我在我的项目中做了许多更改,但如果您在第url1页(示例):Base.html.twig,在此模板内,u将呈现其他控制器,例如AcmeBlogBundle:Post:addPost(此控制器呈现表单,应在同一控制器上发送请求“Post”),但如果其他控制器已呈现u Base.html.twig(欢迎页面)并已呈现Post:addPost,则Post:addPost默认操作会将您发送到呈现当前页面的同一控制器,因此它不会是addPost,要解决此问题,我必须手动将路径添加到呈现视图表单
/**
     * @Route("/", name="login")
     *
     * @Template
     */
    public function loginAction(Request $Request)
    {
        $Session = $this->get('session');


        if($Request->attributes->has(Security::AUTHENTICATION_ERROR)){
            $loginError = $Request->attributes->get(Security::AUTHENTICATION_ERROR);
        } else {
            $loginError = $Session->remove(Security::AUTHENTICATION_ERROR);
        }

        $loginForm = $this->createForm(LoginType::class, array(
            'username' => $userName = $Session->get(Security::LAST_USERNAME)
        ));


        return array(
            'loginError' => $loginError,
            'loginForm' => $loginForm->createView()
        );
    }
    <button type="button" class="btn btn-success btn-sm" data-toggle="modal" data-target="#loginForm">
    Zaloguj
</button>
<div class="modal fade" id="loginForm" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                <h4 class="modal-title" id="myModalLabel">Logowanie</h4>
                {% if loginError is defined and loginError is not null %}
                    <div class="">
                        Blad i chuj: {{ loginError.message }}
                    </div>
                {% endif %}
            </div>
            <div class="modal-body">
                {% form_theme loginForm 'bootstrap_3_layout.html.twig' %}
                {{ form(loginForm, {'action': path('_check_path')}) }}
            </div>
            <div class="modal-footer">
                {{ render(controller('CommonUserBundle:Login:rememberPassword')) }}
                <button type="button" class="btn btn-default" data-dismiss="modal">Zamknij</button>
            </div>
        </div>
    </div>
</div>