Persistir ManyToMany en los dos lados

Vamos a ver el modo de que las entidades relacionadas persistan, ManyToMany, desde los 2 sitios (owner y inversed)

Para persistir la entidad relacionada desde la entidad owner, no hay problema, todo funciona perfectamente, el problema viene cuando queremos persistir desde la entidad inversa (inversed).

Continúa leyendo Persistir ManyToMany en los dos lados

Validación datos dependientes en entidad Symfony2

Al aprender php o cualquier otro lenguaje de programación, llegamos a la situación de tener que validar datos, cuando unos campos están completados o no. Es una tarea bastante habitual cuando desarrollamos proyectos web.

Symfony2 nos permiten de un modo bastante sencillo realizar estas validaciones (validation) dependientes entre campos de la misma entidad (entity)

Continúa leyendo Validación datos dependientes en entidad Symfony2

Icono junto a thumbnail en listados items SonataMediaBundle

En ocasiones podemos tener varios sonata.media.providers asignados a un mismo contexto (context). Si estos generan thumbnails, en el listado de items en SonataAdminBundle no podemos distinguir que provider es cada uno.

Para solucionarlo podemos mostrar junto al thumbnail un icono que nos indique el provider al que pertenece.

Continúa leyendo Icono junto a thumbnail en listados items SonataMediaBundle

Como actualizar FontAwesome en SonataAdminBundle 2.3

En esta versión de SonataAdminBundle, se utiliza la versión 4.0.3 de FontAwesome.

Si estamos trabajando y nos vemos en la necesidad de utilizar iconos que no están en esta versión, podemos actualizar a la 4.4.0, que podemos encontrar en SonataCoreBundle 2.3.10.

Continúa leyendo Como actualizar FontAwesome en SonataAdminBundle 2.3

Filtros por Proveedor (sonata.media.provider) de archivos Media en SonataAdmin

Crear un filtro en una Admin Class de SonataAdminBundle es una tarea bastante sencilla.

Si vamos un poco más allá, podemos necesitar configurar un filtro de una propiedad de una entidad relacionada con la que estamos administrando.

Supongamos que tenemos una entidad Prensa, con un campo relacionado con un Media de SonataMediaBundle, y queremos filtrar el listado por el tipo de proveedor del Media (sonata.media.provider.*).

Continúa leyendo Filtros por Proveedor (sonata.media.provider) de archivos Media en SonataAdmin

Arrays globales en Symfony2

Arrays globales, cuando es importante tener bien definidas las opciones que están disponibles en los selects de administración y que en el Frontend condicionan comportamientos concretos.

Para no equivocarnos en ningún lugar donde los utilicemos y no tener que reescribirlo una y otra vez, podemos crear un array a nivel global.

Continúa leyendo Arrays globales en Symfony2

Custom File Provider para Sonata Media

En ocasiones necesitamos limitar el tipo de archivo por su extensión o mime-type, SonataMediaBundle permite cambiar globalmente los formatos admitidos, pero no específicamente a un contexto.

Por lo tanto, hay que crear un Custom Provider, donde configurar estas extensiones y mime-types específicos.

Para el ejemplo, creo el proveedor para subida de archivos ZIP.

Continúa leyendo Custom File Provider para Sonata Media