定义自定义的SQL查询的实体内寻找好的做法,这里=)是否有可能在Symfony3
基本上,我有一个实体,这是与elems的一个多对一的关系。
可以说我只想从我的实体中选择一些元素。
我可以做
class Entity {
/* some vars here */
public function getSpecificElems(){
forEach($this->elems as $elem){
/* do stuff here */
if($someCondition){ $result[]=$elem;}
}
return $result;
}
但是,这可能意味着大量数据时有链接到我的实体许多elems的获取。另一种方式是
$em->getRepository("AppBundle:Repository")->getSpecificElems($entity);
其中getSpecificElems
执行DQL查询。
我在这里遇到问题:第一个解决方案对我来说更直观,因为它是OOP。第二个更快执行,但对我来说似乎不好。
有没有一种方法来混合1)和2)以获得$entity->getSpecificElems()
返回我想执行良好SQL查询的列表?
干杯,
2)是最好的解决方案 – DOZ
把这个放入存储库绝对是过滤或分页相关实体的方法,并且btw总是也是如此 –
@johnSmith:为什么在使用EntityRepository时这个OOP获取实体属性而不是实体本身? –