【发布时间】:2016-07-12 05:24:29
【问题描述】:
我有两个实体,它们的 OneToMany 映射方式与学说文档中描述的方式完全相同:
// Product Entity
/**
* @OneToMany(targetEntity="Feature", mappedBy="product")
*/
private $features;
// Feature Entity
/**
* @ManyToOne(targetEntity="Product", inversedBy="features")
* @JoinColumn(name="product_id", referencedColumnName="id")
*/
private $product;
当我在Product 上执行findAll() 时,它会返回带有Feature 数组的产品。
我正在使用DQL 进行查询,所以我想知道如何使用DQL 选择Feature 的数组。
我做到了:SELECT p.name, p.price, f FROM Product p JOIN p.features f
但它给出了一个错误
如果不选择至少一个根实体别名,则无法通过标识变量选择实体。
我也试过了:SELECT p.name, p.price, p.features FROM Product p
这也会报错
无效的路径表达式。必须是 StateFieldPathExpression。
【问题讨论】:
-
你能把你的 PHP 代码也去掉吗? DQL 本身看起来并没有错,但问题在于您如何称呼它。
标签: php mysql symfony doctrine-orm doctrine