我正在使用Symfony2和APYDataGridBundle。 我在电影和流派之间有多对多的关系:
/**
* 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;
在我的Genres课程中:
/**
* @ORM\ManyToMany(targetEntity="Film", mappedBy="genres")
**/
private $films;
它工作正常,但是,对于每部电影的每个类型,都会显示不同的行。我想得到一个显示所有类型的专栏。
我得到: (第1行)7 /Bandeàpart/ Drama (第2行)7 /Bandeàpart/ Commedy
但是我希望看到一个包含所有类型的数组: (行)7 /Bandeàpart/ Drama,喜剧
有什么想法吗? 谢谢!
答案 0 :(得分: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 function notation documentation
中所述添加学说扩展名