【问题标题】:Handling POST arrays in Symfony 4 in security.yaml在 security.yaml 中处理 Symfony 4 中的 POST 数组
【发布时间】:2018-05-22 09:19:59
【问题描述】:

我有以下表格:

<form name="user_login" method="post">
<div id="user_login">
    <div>
        <label for="user_login_email" class="required">Email</label>
        <input type="email" id="user_login_email"
               name="user_login[email]"
               required="required">
    </div>
    <div>
        <label for="user_login_password" class="required">Password</label>
        <input type="password"
               id="user_login_password"
               name="user_login[password]"
               required="required">
    </div>
    <div>
        <button type="submit" id="user_login_save" name="user_login[save]">
            Log in
        </button>
    </div>
</form>

我的问题是如何获取 security.yaml 文件中的登录参数?

我的 security.yaml 文件中负责这个的部分现在看起来像这样:

security:
    firewalls:
        main:
            form_login:
                username_parameter: "user_login[email]"
                password_parameter: "user_login[password]"

我尝试了一些变体,例如使用单引号、使用点来引用键等,但它们似乎都不起作用。

【问题讨论】:

    标签: symfony yaml symfony4


    【解决方案1】:

    用户名和密码参数正确。

    问题在于您的表单,特别是操作网址。应该是登录检查页面。

    <form name="user_login" method="post" action="/login_check">
    

    【讨论】:

    • 您好,我已将我的 check_path 和 login_path 配置为 security.yaml 文件中的 user_sign_。我只是觉得没有必要为这个特定问题分享它。代码是通过 {{ form_start(form) }} {{ form_widget(form) }} {{ form_end(form) }} 生成的,我尝试过使用 action 属性,但结果是一样的。
    • 试试这样的:{{ form_start(form, {'action': path('user_sign_in')}) }}
    • 正如我所说,我已经尝试在表单中使用 action 属性,结果是一样的。我认为这与 security.yaml 文件有关。
    • 你能发布完整的security.yaml 吗?
    • 您对登录和 login_check 使用相同的路由。 check_path 必须有自己的路由。
    猜你喜欢
    • 1970-01-01
    • 2018-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-22
    • 2013-06-20
    • 2014-07-08
    • 2018-09-23
    相关资源
    最近更新 更多