Cuando se utiliza colecciones de formulario, IDs forma de elementos se construyen automáticamente por SF2Symfony2: personalizar los ID de elemento de formulario en colecciones de formulario
Form/WeekType.php
class WeekType extends AbstractType
{
public function getName()
{
return "MyBundle";
}
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('fixtures', 'collection', array(
'type' => new FixtureType(),
));
}
}
Form/FixtureType.php
class FixtureType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('score1', 'text');
}
}
Este código produce los siguientes elementos de formulario:
<select id="MyBundle_fixtures_0_score1" />
<select id="MyBundle_fixtures_1_score1" />
0, 1 ... son solo el índice de iteración actual.
Quiero cambiar los identificadores de las etiquetas de selección. Por ejemplo, poner valores de clave primaria (de Modelo) en lugar de índice de iteración.
<select id="MyBundle_fixtures_151_score1" />
<select id="MyBundle_fixtures_152_score1" />
o incluso:
<select id="MyBundle_fixtures_0_score1_151" />
<select id="MyBundle_fixtures_1_score1_152" />
151, 152 son el valor de clave principal de la tabla Fixture (de base de datos).
Su última propuesta aún se encuentra en [discusión] (https://github.com/symfony/symfony/pull/1461). En cuanto a su primera propuesta, no la entiendo. ¿Cómo puedo modificar las claves de colecciones pasadas al formulario? – ocornu