Php Symfony2+;教义,在关系中发现
我正在考虑设计一个API,使用Symfony2中的fos_rest包和MySQL中的Doctrine来过滤对象。 假设我有一个主实体,它与具有某些属性的不同实体有关系。 现在在前端,我想创建一个过滤器,其中可以根据相关实体的属性过滤主实体。那怎么可能呢 说我们有Php Symfony2+;教义,在关系中发现,php,mysql,entity-framework,symfony,doctrine-orm,Php,Mysql,Entity Framework,Symfony,Doctrine Orm,我正在考虑设计一个API,使用Symfony2中的fos_rest包和MySQL中的Doctrine来过滤对象。 假设我有一个主实体,它与具有某些属性的不同实体有关系。 现在在前端,我想创建一个过滤器,其中可以根据相关实体的属性过滤主实体。那怎么可能呢 说我们有 +---------------+ | Master Entity | +----+----------+ | id | name | +----+----------+ | 1 | Apple | +----+----
+---------------+
| Master Entity |
+----+----------+
| id | name |
+----+----------+
| 1 | Apple |
+----+----------+
| 3 | Berry |
+----+----------+
我想要一个过滤器,在这里,我通过属性实体中的值进行过滤 我想做一些像
$em->getRepository('AcmeBundle\MasterEntity')->findBy(array("PropertyEntity:value" => "red","PropertyEntity:value" => "yello"))
因此,它将返回ID=1的主实体的对象集合(apple)-因为这两个参数都将匹配apple您可以创建一个查询生成器,而不是使用findBy
$qb->select('m')
->from('AcmeBundle\MasterEntity', 'm')
->join('m.PropertyEntity', 'p')
->where('p.value IN (:values)')
->setParameter('values',['red','yellow']);
您可以创建查询生成器,而不是使用findBy
$qb->select('m')
->from('AcmeBundle\MasterEntity', 'm')
->join('m.PropertyEntity', 'p')
->where('p.value IN (:values)')
->setParameter('values',['red','yellow']);