Persistencia · Pregunta 6 de 12
¿Qué tipo se usa en un modelo de Extbase para una propiedad que contiene varios objetos relacionados, p. ej. todos los ponentes de una conferencia?
1 respuesta es correcta. Fácil
Mostrar solución
Solución
- A \
TYPO3\ CMS\ Extbase\ Persistence\ ObjectStorage
Explicación
Para relaciones 1:n y m:n, Extbase utiliza la clase ObjectStorage, p. ej. protected ObjectStorage $speakers; con la anotación @var ObjectStorage<Speaker> para el IDE y el análisis estático. Las entradas se añaden mediante métodos como addSpeaker(), que internamente llaman a attach(), y se eliminan con detach(). En la plantilla la relación se recorre con <f:for each="{conference.speakers}" as="speaker">. El ObjectStorage debe inicializarse antes de acceder a él; de lo contrario, se produce un error. SplObjectStorage de PHP parece similar, pero Extbase no puede cargar relaciones en él ni persistir sus cambios.