symfony - Doctrine - Criteria - expressions - 包含(多对多)

标签 symfony collections doctrine many-to-many criteria

我正在尝试用 Doctrine 解决问题。我正在使用标准来查找结果 - 帖子(主要使用表达式 eq,这很有效),但现在我想按标签查找帖子 - 通常是 ManyToMany(很容易使用标准)。

问题是我仍然收到此错误:“注意:未定义索引:joinColumns in ...”

这是我的代码:

....

$criteria = Criteria::create();

foreach ($this->tags as $tag)
    $criteria->Where( Criteria::expr()->contains('tags', $tag ));
...

//$this->tags is an array collection of selected tags.

帖子实体-标签注解:

/**
 * @var Collection
 * @ORM\ManyToMany(targetEntity="Tag", inversedBy="posts")
 * @ORM\JoinTable(name="blog_post_tag",
 *                joinColumns={@ORM\JoinColumn(name="post_id", referencedColumnName="id")},
 *                inverseJoinColumns={@ORM\JoinColumn(name="tag_id", referencedColumnName="id")}
 * )
 *
 */
protected $tags;

那里可以使用标准吗?

谢谢。

最佳答案

多对多关系的标准不久前在 Doctrine 中不受支持,但我看到了这个拉取请求:

https://github.com/doctrine/doctrine2/pull/885/commits

因此它可能在更新的 Doctrine 版本中得到支持。

关于symfony - Doctrine - Criteria - expressions - 包含(多对多),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27803525/

相关文章:

java - 是否有一个 Java 集合可以在添加更多项目时删除项目? (一个简单的缓存)

kotlin - linkedSetOf 和 hashSetOf 有什么区别?

mongodb - Doctrine MongoDB - 有没有办法从 JSON 构建查询?

php - Doctrine (symfony) YAML schema/fixture 约束问题

php - Symfony2 表单生成器 - 删除标签,使其成为占位符

php - Symfony2,如何使表单标签类/属性与​​其输入不同?

symfony - generateUrl 外部 Controller

php - Symfony 表单,错误冒泡

java - 如何从 hashmap 返回对象

database - 保存数据库字段更改 - 最佳实践?版本控制,可记录?