原则查询基于相关实体字段搜索实体

圣西尔·西尔·马普卡

我在理论上有ManyToOne关系(许多结果传给One PollingStation):

/**
 * @ORM\ManyToOne(targetEntity="Iballot\CmsBundle\Entity\PollingStation2", inversedBy="results", cascade={"persist"})
 * @ORM\JoinColumn(nullable=false)
 * @Expose
 */
 private $pollingStation2;

我想搜索属于投票站且名称与关键字相似的所有结果。我尝试使用以下方法,但是它不起作用:

public function getForSearch($keyWord)
{
    $query = $this->_em->createQueryBuilder();
    $query
        ->select('r')
        ->from('IballotCmsBundle:Result', 'r')
        ->where($query->expr()->like('p.pollingStation2', $query->expr()->literal('%' . $keyWord . '%')))
        //->orderBy('p.', 'ASC')
        ->getQuery()
        ->setParameter('keyWord', '%'.$keyWord.'%');
    return $query->getQuery()->getResult();
}

我收到以下错误

[语义错误]第0行,“ pollingStation2”附近的第48列:错误:无效的PathExpression。必须是StateFieldPathExpression。

挑战者

正如@Cerad所说的(再过一次),您需要JOIN在构建查询时使关联的实体可用。

试试这个 :

$query = $this->_em->createQueryBuilder();
$query
    ->select('r')
    ->from('IballotCmsBundle:Result', 'r')
    ->leftJoin('r.pollingStation2', 'p') // The missing join
    ->where('p.name LIKE :keyword') // where p.name like %keyword% 
    ->setParameter('keyword', '%'.$keyword.'%')
    ->orderBy('p.name', 'ASC') // order by p.name ASC
    ->getQuery()

return $query->getResult();

顺便说一句,我修复了您orderBy,简化了您where并修复了keyword错误定义参数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java Jpa查询搜索与ID相关的实体

来自分类Dev

原则查询构建器获取外部实体的字段

来自分类Dev

原则-实体A与相关实体B和C之间的关系

来自分类Dev

原则orderBy通过注释。基于关联的实体排序实体关联。

来自分类Dev

相关实体查询实体框架

来自分类Dev

原则2保留实体并从插入查询中排除空字段

来自分类Dev

zend Framework 2 +原则:删除具有相关实体的媒体

来自分类Dev

基于关系的实体框架查询

来自分类Dev

实体框架查询单个查询中的相关实体

来自分类Dev

使用linq实体获取基于相关实体的记录

来自分类Dev

使用linq实体获取基于相关实体的记录

来自分类Dev

具有基于查询的实体数据类型的字段基于来自其他应用程序的实体

来自分类Dev

laravel 5.2在相关实体中搜索

来自分类Dev

原则与多实体关联

来自分类Dev

选择多个实体原则

来自分类Dev

原则-与实体分离的模型

来自分类Dev

原则实体代理例外

来自分类Dev

原则:更新整个实体

来自分类Dev

原则-与实体分离的模型

来自分类Dev

原则实体代理例外

来自分类Dev

使用linq和相关实体查询实体框架7

来自分类Dev

使用 Linq 在实体框架中查询嵌套/相关实体

来自分类Dev

Hibernate Search / Lucene-通过单个查询搜索不相关实体并对其进行排名

来自分类Dev

原则不跟踪实体中某些字段的更改

来自分类Dev

在查询中多次使用相关实体

来自分类Dev

Breeze 查询以包含过滤的相关实体

来自分类Dev

在mongodb的单独字段中查询具有相关属性计数的实体

来自分类Dev

尝试在某些相关实体上使用OR查询,在其他相关实体上使用AND查询

来自分类Dev

原则2加入实体,再加入实体

Related 相关文章

热门标签

归档