gpt4 book ai didi

forms - Symfony 4-如何在不构建表单的情况下添加csrf token ?

转载 作者:行者123 更新时间:2023-12-04 13:12:58 27 4
gpt4 key购买 nike

我在这里阅读教程

https://symfony.com/doc/current/form/csrf_protection.html

如何添加csrf token 。说用

form_end()

在模板中。但这不起作用,并给出错误:

Type error: Too few arguments to function Symfony\Component\Form\FormRenderer::renderBlock(), 0 passed in E:\projektai\php projektai\htdocs\mokomieji\symfony_4_demo\var\cache\dev\twig\bb\bb2248f7be504240fcc2ab43dabf593090ebc4c897ce72b1a979082d62914b47.php on line 48 and at least 2 expected



这是显示如何修复的答案,但仅当您构建了表单对象时,此答案:

Symfony Type error: Too few arguments to function FormRenderer::renderBlock()

如何在没有表单对象的情况下执行此操作?这是从登录文档页面登录:
{% if error %}
<div>{{ error.messageKey|trans(error.messageData, 'security') }}</div>
{% endif %}

<form action="{{ path('login') }}" method="post">
<label for="username">Username:</label>
<input type="text" id="username" name="_username" value="{{ last_username }}" />

<label for="password">Password:</label>
<input type="password" id="password" name="_password" />

<button type="submit">Login</button>

{{ form_end() }}

最佳答案

您可以使用doc here中所述的辅助 Twig 函数csrf_token,例如:

 <input type="hidden" name="_csrf_token"
value="{{ csrf_token('authenticate') }}"
>

有关 this答案的更多帮助。

更新:

其他策略:从 Controller 传递:
    $tokenProvider = $this->container->get('security.csrf.token_manager');
$token = $tokenProvider->getToken('example')->getValue();

希望有帮助

关于forms - Symfony 4-如何在不构建表单的情况下添加csrf token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47872020/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com