在使用 Silex 框架的 Twig 模板中使用 Javascript 变量

2022-01-22 00:00:00 jquery php javascript twig silex

我正在尝试在 Twig 模板中的一些 Javascript 中创建路由,并且需要使用 JS 变量作为路由参数的值.

I am trying to create a route inside of some Javascript inside of a Twig template and need to use a JS variable as a value to a route parameter.

例子:

window.location.href = {{ path('post_display', { 'id': this_is_where_i_need_to_use_the_js_var }) }};

我正在使用 Silex 框架,但不确定 FOS JS 是否适用于 Silex.不过,我认为不会.

I am using the Silex framework and am unsure if FOS JS works for Silex. I don't think it does, though.

推荐答案

Twig,由于它是用 PHP 编写的,在服务器上运行,与 javascript 代码完全分开,所以你想要的需要一个解决方法.

Twig, since it's written in PHP, runs on the server, completely separately than the javascript code, so what you want needs a workaround.

首先,生成路线,但使用占位符,然后在必要时将其替换为变量的值:

First, generate the route, but with a placeholder, then replace that with the value of your variable when neccessary:

var route = "{{ path('post_display', { 'id': "PLACEHOLDER" }) }}";
window.location = route.replace("PLACEHOLDER", js_variable);

这样的东西应该适合你.

Something like this should work for you.

相关文章