Rob*_*bin 10 criteria symfony doctrine-orm
我试图根据Doctrine Docs建立一个标准.
不幸的是,他们没有告诉你如何访问相关对象的属性.让我给你举个例子.
我有一个产品的ArrayCollection.每个产品都有一个类别.我想过滤类别名称的ArrayCollection.现在我正在尝试设置如下标准:
$criteria = Criteria::create()
  ->where(Criteria::expr()->eq("category.name", "SomeCategoryName"));
现在我得到以下例外:
An exception has been thrown during the rendering of a template ("Unrecognized field: category.name")
如何访问相关对象?
我查看了源代码Criteria::expr()->eq("name", --- second value ---).第二个值需要一个实例Doctrine\Common\Collections\Expr\Value.所以不可能放另一个Expr或criteria在那里.只有Expr And和Or另一个Expr.我很确定你是想用其他函数解决这个问题,filter()或者用它来获取迭代器getIterator().这是如何使用该filter()方法完成的.
$filteredProducts = 
    $products->filter(function($key, $element) use ($categoryName) {
        return $element->getCategory()->getName() === categoryName;
    });
如果你可以Iterator为每个下一个关系,你可以嵌套foreach循环并在其中进行过滤.
| 归档时间: | 
 | 
| 查看次数: | 16107 次 | 
| 最近记录: |