我正在考虑使用Symfony2中的fos_rest包和MySQL中的Doctrine来设计API来过滤对象。 让我们说我有一个主实体,它与具有某些属性的不同实体有关系。 现在在前端我想创建一个过滤器,其中可以通过相关实体的属性过滤主实体。那怎么可行?
说我们有
+---------------+
| Master Entity |
+----+----------+
| id | name |
+----+----------+
| 1 | Apple |
+----+----------+
| 3 | Berry |
+----+----------+
+-------------------+
| Property Entity |
+----+------+-------+
| id | id_m | value |
+----+------+-------+
| 1 | 1 | green |
+----+------+-------+
| 2 | 1 | yello |
+----+------+-------+
| 3 | 1 | red |
+----+------+-------+
| 4 | 3 | pink |
+----+------+-------+
我希望有一个过滤器,我按照属性实体
中的值进行过滤我想做点什么
$em->getRepository('AcmeBundle\MasterEntity')->findBy(array("PropertyEntity:value" => "red","PropertyEntity:value" => "yello"))
所以它将返回ID为1(苹果)的主实体的对象集合 - 因为这两个参数都匹配Apple
答案 0 :(得分:0)
您可以创建查询构建器,而不是使用findBy
$qb->select('m')
->from('AcmeBundle\MasterEntity', 'm')
->join('m.PropertyEntity', 'p')
->where('p.value IN (:values)')
->setParameter('values',['red','yellow']);