Acabo de poner esta query y ahora me salta el siguiente error:
Method "title" for object "cosmo\HomeBundle\Entity\UserPublish" does not exist in HomeBundle:Notices:index.html.twig at line 4
Y tiene gran parte de lógica, si no estuviesemos haciendo los JOIN, ya que la entidad "intermedia" para Doctrine sólo tiene las propiedades notices, users y categories. Pero entiendo que al hacer las JOIN ya disponemos de todas las propiedades de las entidades incluidas en la query y parece ser que no es así, que sólo obtiene las propiedades de UserPublish y de ahí el error. El method title está en la entidad de notices.
Yo necesito obtener de notices ciertos campos, de categories la categoría y de users el login, por lo que me quedaría una query parecida a la que yo tenía antes y que tampoco funciona porque el titleslug no lo reconoce:
Código:
//Esta es tu query
SELECT up, n, c, u
FROM HomeBundle:UserPublish up
JOIN up.notices n
JOIN up.categories c
JOIN up.users u
//Estos son los campos que yo necesito (Aquí saldría el error que no reconoce el titleslug)
SELECT n.title,
n.titleslug,
n.notice,
n.createdAt,
c.category,
u.login
FROM HomeBundle:UserPublish up
JOIN up.notices n
JOIN up.categories c
JOIN up.users u
//La última solución que se me ocurría era sacar sólo n, c y u, pero al quitar up me sale el siguiente error:
//[Semantical Error] line 0, col -1 near 'SELECT n, c,': Error: Cannot select entity //through identification variables without choosing at least one root entity alias.
SELECT n, c, u
FROM HomeBundle:UserPublish up
JOIN up.notices n
JOIN up.categories c
JOIN up.users u
Nunca me resultó tan complicado relacionar varias tablas para sacar la información que me interesa y pasandola por el método slugify, en este caso el titulo para que a la hora de ponerlo en un LINK tenga una url amigable.
Gracias nuevamente por todo el apoyo mostrado y aver si podemos conseguir una solución a todo esto.