自定义身份验证-登录Symfony 2消息

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (50)

如果有登录错误,我想定制错误消息。

这是模板:

{% 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.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不同

提问于
用户回答回答于

parameters.ini设置地区到你的语言和创造讯息档案.然后在小枝模板中使用:

{% if error %}
    <div class="error">{{ error.message|trans({},'messages') }}</div>
{% endif %}
用户回答回答于

如果不想使用翻译,还有另一种可能性。您只需替换消息,例如:

{{ error.message | replace({"Bad credentials." : "Invalid username or password."}) }}

扫码关注云+社区