情况:我需要将JS变量值与一个Twig变量值进行比较,在jQuery函数内部或者根据给定的ID号以某种方式从Twig数组中访问特定对象。
描述情况的代码:
"laravel/lumen-framework": "5.1.*",
"vlucas/phpdotenv": "~1.0",
"doctrine/dbal": "~2.3",
"illuminate/mail": "^5.1",
"tymon/jwt-auth": "^0.5.6",
"basicit/lumen-vendor-publish": "^1.0",
"illuminate/support": "5.1.25",
"illuminate/routing": "5.1.25"
或类似的东西(如果它甚至可能):
var id = ...;
{% for user in userlist %}
{% if user.id == id %}
var userInfo = $.parseJSON({{ user }};
{% endif %}
{% endfor %}
$('#username-field').html(userInfo['username']);
...
问题:由于Twig无法访问JS值,我不知道如何在twig {%...%}括号内放置某种占位符。
最好从已经通过请求发送到Twig模板的集合中访问所选对象,而不是创建新的Ajax请求,以便再次从控制器获取特定对象。
答案 0 :(得分:2)
Twig 是服务器端模板引擎。不幸的是,您无法比较枝条变量和javascript变量。因此,您应该从服务器端传递关键变量id
。因此,userlist
和id
必须是树枝变量。
{% for user in userlist %}
{% if user.id == id %}
var userInfo = {{ user.username|json_encode|raw }}; // or {{ user.username|raw }}
{% endif %}
{% endfor %}
$('#username-field').html(userInfo);