Como implementar Doctrine Filter en Symfony 4

Esto es un poco de mi experiencia. En este caso vamos a poder filtrar entidades por una Cuenta.

Cada usuario va a pertencer a una Cuenta (Account.)

Aca definimos la cuenta, de vago no copie todos los setters y getters… usen la imaginacion… o el bin/console make:entity

Luego, si queremos filtrar los clientes por cuenta… para no repetir código utilizamos un Trait…

Aquí el Trait… como ven muy simple.

Ahora arrancamos con la magia… creamos un SQLFilter donde se agrega la logica.. de como vamos a filtrar y tambien importante cuando… el cuando lo sabemos con un Helper que definimos más abajo…

Para que esto funcione, debemos definir el «Id» a filtrar en el código anterior… esto se hace con un Configurator, el cual no es otra cosa que un EventListener al que se le hacemos un inject de Doctrine y el manejo de la sesión de usuarios. Tomando el usuario conectado, le preguntamos a que cuenta pertenece, tomamos el ID y lo seteamos al filtro de Doctrine.

Este Helper es para reconocer si la entidad debe ser filtrada por el AccountFilter o solo dejarla pasar.

Y aca las configuraciones… primero para que lo reconozca Doctrine al Filter.

Y ahora la definición para que se reconozca el EventListener.

That’s all folks.