我有一个订单数据库(简化): 订单:{id,货件,折扣,日期} order_item:{id,order_id,name,amount,price}
如果我想获得全价(SUM(商品价格)+发货折扣),我当然可以在我的订单类中添加一个方法来执行查询。另一方面,对包含全价的订单进行查看会很方便。
是否可以将其集成到Doctrine2实体对象中?是否可以通过类中的注释生成这样的视图,因为我使用Symfony / Doctrine维护我的数据库布局?
答案 0 :(得分:4)
您有Doctrine Entity和EntityRepository。
查询应该作为方法转到Repository Classes。 mysql-view只是一个查询。存储库类返回一个或多个实体类..数据库表中的I.E行。
请提供一些代码和架构,以获得更好的答案。
这可以转到订单实体:
public function getOrderTotal() {
$sum = 0.0;
foreach ($this->getOrderItems() as $item) {
//Process
}
return $sum;
}
Doctrine2不支持本机MySQL视图处理和生成。
答案 1 :(得分:0)
mmm¿可以?我不知道。我认为为这些实体做一个自定义存储库是最好的。在其方法中具有查询的实体不干净。 这里有一个使用实体和自定义查询的howto示例 http://www.zalas.eu/doctrine2-and-symfony2