所以我的朋友和我正在讨论是否在DQL中使用object或id 我在互联网上搜索,但我在学说文档中找不到任何东西,看看哪种是最佳做法 所以问题是这样的 想象一下,你有Category对象 您希望获得价格低于10的产品,以便在产品存储库中创建DQL并传递$ category对象以获得更好的性能 我的朋友说我们应该通过$ category-> getId()并按照这样的ID搜索
public function findCheapProducts($categoryId){
return $this->createQueryBuilder('p')
->where('p.category = :categoryId')
->andWhere('p.price < :price')
->setParameters(array(
'categoryId' => $categoryId,
'price' => 10
));
}
但我说的是这样的
public function findCheapProducts(Category $category){
return $this->createQueryBuilder('p')
->where('p.category = :categoryId')
->andWhere('p.price < :price')
->setParameters(array(
'categoryId' => $category,
'price' => 10
));
}
我在这里写了代码,所以错误或事情对我来说并不重要 目标是查看哪个是通过标识符
放置条件的更好方法答案 0 :(得分:1)
我根据用户输入混合两者。当我已经拥有了传递它的对象时,如果我在表单提交之后只有ID,那么我会传递ID,因为加载模型只是为了将它传递给查询构建器是无意义的。 (在这种情况下,您需要进行适当的表单验证以避免错误的ID)