Hoy se me ha planteado una curiosa situación: necesitaba definir el modelo de datos necesario para unas noticias que iban en varios idiomas y cada una necesitaba tener por URL el título sluggabilizado(¿?) en ese idioma.
Cuando necesito internacionalizar los campos de una tabla uso el behaviour I18 de Doctrine. Por otro lado, cuando necesito URL amigables acudo al behaviour Sluggable. En este caso el problema es que los behaviours están anidados, esto es, la tabla noticias debe ser i18n pero a su vez, el slug se debe construir a partir del campo título internacionalizado.
Después de todo este jaleo, la solución ha resultado ser más simple de lo que me espera:
NewsItem:
actAs:
I18n:
fields: [title, body]
actAs:
Sluggable:
unique: true
fields: [title]
canUpdate: true
columns:
title: string(255)
body: clob
published_at: date