Digamos que tengo ordinaria clase *Type
:¿Cómo obtener una instancia del repositorio de entidades en la clase Form (Type) en Symfony 2?
class LocationType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add(...)
...
}
}
y uno de los campos es un tipo choice
. Se supone que los valores que deben utilizarse como elementos de elección se recuperan de la base de datos (desde algún repositorio de entidad particular).
Entonces la pregunta es: ¿cómo obtener el repositorio en la clase LocationType
? ¿Pasarlo por el constructor es la única forma de obtenerlo?
UPD:
que sé de entity
tipo, pero por desgracia no puedo usarlo, porque mi propiedad no es y no puede ser definida como one-to-one
relación debido a las condiciones de relaciones muy complejas que Doctrina no soporta (aún ?). Ver How to specify several join conditions for 1:1 relationship in Doctrine 2 para obtener detalles adicionales
No puedo hacerlo, porque mi propiedad 'foo' no se define como ninguna relación (' uno-a-uno' o cualquier otro) debido a la relación que se define de manera muy difícil que la doctrina actualmente no admite. http://stackoverflow.com/questions/9123264/how-to-specify-several-join-conditions-for-11-relationship-in-doctrine-2 - aquí está la pregunta que explica el caso – zerkms
Lo siento, no lo hice. t especificar detalles tan significativos en la primera revisión de la pregunta, +1 para la ayuda de todos modos. ¿Algún otro pensamiento? – zerkms
Hola. No hay problema. ¡Podría haber leído tu pregunta demasiado rápido de todos modos! Sugeriría '$ this-> buildForm ($ type, $ entity, array ('repository' => $ er))' en tu controlador para pasar la clase del repositorio como una opción a tu formulario, pero supongo que dada tu pregunta estás buscando evitar esto. –