Symfony2 APYDataGridbundle ManyToMany

0

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

Есть идеи? Спасибо!

Теги:
many-to-many
datagrid

1 ответ

1

Ты пробовал:
@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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню