No es posible hacer esto, ya que el for lo que hace es ir pisando el valor en cada iteracion, por lo tanto esta correcto que te muestre el ultimo est.id. Ademas piensa que la plantilla de twig se genera y se convierte en HTML antes de mostrartela a ti, por lo tanto el no sabe el codigo que tu debes seleccionar.
Lo que puedes hacer es en un campo oculto setear el ID que tu seleccionaste y al enviar el formulario rescatarlo en tu controller o simplemente reemplazar el action por ejemplo asumiendo que tu "codigo" no va como parametro, es decir, que la ruta de tu controller es asi
Código HTML:
Ver original{{ path('docente_notas_x_estudiante') }}
y te generara algo asi por ejemplo
Empezamos con el ejemplo de JQuery
Código PHP:
Ver original{% for est in estudiantes %}
<li><a class='activate_modal' name='modal_window' id="{{ est.id }}">Evaluar</a> </li>
{%endfor%}
Código Javascript
:
Ver original$(document).ready(function()
{
$(".activate_modal").click(function ()
{
//A la ruta le agregamos el codigo como parametro
_url = '{{path('docente_notas_x_estudiante')}}' + "?codigo="+$(this).attr("id");
//Reemplazaos el action
$("#login").attr("action", _url);
});
});
Porque le envio el codigo despues de que genero la ruta? porque como te dije antes la plantilla twig la genera antes de mostrartela, por lo tanto le anexamos el parametro "codigo" despues con Javascript, que esto lo hace en el cliente, recuerda agregar el llamado al archivo JQuery o cambiar esto por un onclick tambien funcionaria.
Si lo haces como un parametro oculto o hidden seria algo similar y en tu controller lo rescataras asi
Saludos