我有一个从控制器发送到包含一些JavaScript脚本的twig模板的数组arr,我想用循环来访问数组的行,如下所示:
for (var i = 0; i < 3; i++) {
alert('{{ arr[i] }}');
}
但变量i未知,我收到此错误:
变量&#34;我&#34;不存在。
有什么建议吗?
答案 0 :(得分:4)
这是如何通过twig将控制器中的php数组转换为javascript数组:
控制器
return $this->render(
'AppBundle:index.html.twig',
array(
'myArray' => array('foo', 'bar', 'z')
)
);
Twig view
{% block javascripts %}
<script type="text/javascript">
var myArray = '{{ myArray | json_encode | raw }}';
</script>
{% endblock %}
答案 1 :(得分:1)
Twig是PHP。您将其值发送到javascript但您无法将javascript变量发送到php。 (除了AJAX等......但这里不相关)
可能的:
/* javascript variable */
var name = {{ object.name }}
console.log(name);
不可能:
/* javascript variable */
var name = 'toto';
{# Twig #}
{{ name }} // <- IMPOSSIBLE