Im работает с Symfony2 и APYDataGridBundle. У меня есть много разных отношений, между объектами Film и Genre:
/**
* Film
*
* @ORM\Table(name="Film")
* @ORM\Entity(repositoryClass="Filmoteca\FilmoBundle\Repository\FilmRepository")
* @GRID\Source(columns="id, genres.genre")
*/
class Film
{
/**
* @var \Filmoteca\FilmoBundle\Entity\Genre
*
* @ORM\ManyToMany(targetEntity="Genre", inversedBy="films")
* @ORM\JoinTable(name="genre_films")
*
* @GRID\Column(field="genres.genre", title="Genre", filter="select", selectMulti="true)
**/
private $genres;
И в моем классе Жанры:
/**
* @ORM\ManyToMany(targetEntity="Film", mappedBy="genres")
**/
private $films;
Он работает отлично, но для каждого жанра каждого фильма показан другой ряд. Я хотел бы получить столбец, который показывает все жанры.
Я получаю: (row1) 7/Bande à part/Drama (row2) 7/Bande à part/Commedy
Но я хотел бы увидеть массив со всеми жанрами: (строка) 7/Bande à part/Drama, Comedy
Есть идеи? Спасибо!
Ты пробовал: @GRID\Column(field="genres.genre:GroupConcat", title="Genre", filter="select", selectMulti="true")
и добавьте groupBy для источника: @GRID\Source(columns="id, genres.genre:GroupConcat", groupBy={"id"})
Если GroupConcat не работает из коробки, вам необходимо добавить расширение доктрины, как описано в документации по нотации функций APYDataGridBundle DQL
Я предлагаю: https://github.com/beberlei/DoctrineExtensions