所以我正在读Symfony2书的安全章节。我理解所有的东西,但是如果有登录错误,我想自定义错误消息。
我可以在哪个文件中更改此设置?
这是模板:
{% if error %}
<div>{{ error.message }}</div>
{% endif %}
<form action="{{ path('login_check') }}" 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" />
{#
If you want to control the URL the user is redirected to on success (more details below)
<input type="hidden" name="_target_path" value="/account" />
#}
<input type="submit" name="login" />
我认为最糟糕的方法是这样做:
if (error.message=="Bad credentials")
echo "Los datos son erróneos :)"
if (error.message==The presented password is invalid")
echo "La combinación username/password no es correcta :)"
你能帮我一下吗?
编辑:我让它工作了:
如果有人需要这样做,请确保将此行添加到config.yml
#app/config/config.yml
framework:
translator: { fallback: en }
在文件messages.whateverisyourlanguage.yml中,在我的例子中是messages.es.yml,如下所示:
要翻译的文本:已翻译的文本
#Foo\DummyBundle\Resources\translations\messages.es.yml
The presented password cannot be empty.: El campo contrasena no debe estar vacio
The presented password is invalid.: Los datos suministrados son incorrectos
Bad credentials: Los datos suministrados son incorrectos
要小心处理要翻译的文本。如果文本的末尾有一个点,你必须把这个点放进去。我没有那样做,它也不起作用。
footranslate.
与footranslate
不同
问候!:)
发布于 2012-02-09 14:47:21
您可以使用translation。在parameters.ini
set locale中将其转换为您的语言并创建message file。然后在细枝模板中使用:
{% if error %}
<div class="error">{{ error.message|trans({},'messages') }}</div>
{% endif %}
发布于 2015-07-08 22:26:33
如果你不想使用翻译,还有另一种可能性。您可以只替换消息,例如:
{{ error.message | replace({"Bad credentials." : "Invalid username or password."}) }}
https://stackoverflow.com/questions/9201849
复制相似问题