我有两个实体User并且Article具有多对多的关系,因为Article可以有很多作者.
class User
{
/** @var string */
public $name;
/** @var Collection<Article> */
public $articles;
}
class Article
{
/** @var string */
public $title;
/** @var Collection<User> */
public $authors;
}
Run Code Online (Sandbox Code Playgroud)
如何使用DQL查找指定(共)作者的所有文章?
mle*_*eko 10
使用MEMBER OF表达式.
你的DQL查询就像
SELECT art FROM Article art WHERE :user MEMBER OF art.authors
Run Code Online (Sandbox Code Playgroud)
或使用查询构建器
$queryBuilder = $repository->createQueryBuilder("art");
$queryBuilder->where(":user MEMBER OF art.authors");
Run Code Online (Sandbox Code Playgroud)
或者,您可以加入并过滤收集
SELECT art FROM Article art JOIN art.authors aut WHERE aut = :user
Run Code Online (Sandbox Code Playgroud)
要么
$queryBuilder = $repository->createQueryBuilder("art");
$queryBuilder->join("art.authors", "aut");
$queryBuilder->where("aut = :user");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4182 次 |
| 最近记录: |