【发布时间】:2012-12-13 22:39:58
【问题描述】:
虽然这应该是相当简单的事情,但我似乎无法弄清楚。
我有图像实体和文章实体。许多文章可以使用同一张图片,但每篇文章只能有一张图片,因此它们被映射为 OneToManyManyToOne。
现在,我需要仅选择没有任何相关文章的图片。我该怎么做?
我试过了:
$repository->createQueryBuilder('i')
->select('i')
->where('count(i.articles) = NULL');
但它不起作用。我怎样才能做到这一点?
更新
我在 Type 类中使用它并尝试创建仅包含未使用实体的实体字段,如果相关,这里是完整的功能代码:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('images', 'entity', array(
'class' => 'BloggerBlogBundle:Image',
'query_builder' =>
function(EntityRepository $er)
{
return $er->createQueryBuilder('i')->.........here goes query creation
},
)
)
;
}
如果需要,这里也是关联:
图像类:
/**
* @ORM\OneToMany(targetEntity="Blog", mappedBy="image")
*/
protected $articles;
博客类:
/**
* @ORM\ManyToOne(targetEntity="Image", inversedBy="articles")
*/
protected $image;
【问题讨论】:
标签: php doctrine-orm