Using Javascript variable in Twig template using Silex framework

16,432

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.

Share:
16,432
Moismyname
Author by

Moismyname

Terrifyingly enough, I am a professional software developer. I mainly work on web applications.

Updated on July 13, 2022

Comments

  • Moismyname
    Moismyname almost 2 years

    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.

    Example:

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

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