当我在localhost中登录我的页面时:
mylocal.com/app_dev.php/login,我有这个错误:
在渲染模板期间抛出了异常 ("警告:gettext()需要1个参数,3个给定")。
在这个模板上:
<div class="form-group">
<input type="text" id="username" name="_username" value="{{ last_username }}" required="required" placeholder="{{ 'security.login.username'|trans }}" class="form-control" />
</div>
我的composer.json:
"require": {
"php": ">=7.1",
"doctrine/doctrine-bundle": "^1.6",
"doctrine/orm": "^2.5",
"friendsofsymfony/jsrouting-bundle": "^1.6",
"friendsofsymfony/user-bundle": "2.0.2",
"incenteev/composer-parameter-handler": "^2.0",
"knplabs/doctrine-behaviors": "^1.4",
"sensio/distribution-bundle": "^5.0.19",
"sensio/framework-extra-bundle": "^5.0.0",
"symfony/assetic-bundle": "^2.8",
"symfony/monolog-bundle": "^3.1.0",
"symfony/polyfill-apcu": "^1.0",
"symfony/swiftmailer-bundle": "^2.6.4",
"symfony/symfony": "3.4.*",
"twig/twig": "^2.0",
"twig/extensions": "^1.5"
},
我的版本:
PHP: PHP 7.2.2-3 + ubuntu16.04.1 + deb.sury.org + 1(cli)(建于:2018年2月6日16:11:23)(NTS)
阿帕奇: 服务器版本:Apache / 2.4.18(Ubuntu)
答案 0 :(得分:3)
如果你使用Twig-extensions,它可能来自i18n扩展。 所以为了快速修复它,juste禁用了i18n扩展。
答案 1 :(得分:1)
如果有人遇到与 相同的问题在呈现模板期间抛出异常(&#34;警告:gettext()需要1个参数,3个给定&#34;)。< / em> 检查您的配置是否已注册的枝条扩展名并将其删除:
twig.extension.i18n:
class: Twig_Extensions_Extension_I18n
tags:
- { name: twig.extension }
答案 2 :(得分:0)
我认为这是因为你的翻译。 Twig希望{{}}是一个php变量而不是字符串。试试这个:
{% trans %}security.login.username{% endtrans %}
答案 3 :(得分:0)
确保已安装symfony/twig-bridge
答案 4 :(得分:0)
<input type="text" id="username" name="_username" value="{{ last_username }}" required="required" placeholder="{{ 'security.login.username'|trans }}" class="form-control" />
我不确定为什么使用 security.login.username 的引号,看起来你正试图从安全对象中获取一些价值,如果有,那么尝试删除这样的引号:
<input type="text" id="username" name="_username" value="{{ last_username }}" required="required" placeholder="{{ security.login.username|trans }}" class="form-control" />