gpt4 book ai didi

php - Doctrine2 在字段数组中按值查找

转载 作者:可可西里 更新时间:2023-11-01 00:05:28 24 4
gpt4 key购买 nike

我想知道是否有一种方法可以搜索如下所示的文档字段:

/**
* @var array
*
* @ORM\Column(name="tags", type="array", nullable=true)
*/
private $tags;

在数据库中看起来像 php 数组解释:

a:3:{i:0;s:6:"tagOne";i:1;s:6:"tagTwo";i:2;s:8:"tagThree";}

现在我尝试通过尝试的标签搜索实体

public function findByTag($tag) {
$qb = $this->em->createQueryBuilder();
$qb->select('u')
->from("myBundle:Entity", 'u')
->where('u.tags LIKE :tag')
->setParameter('tag', $tag );
$result=$qb->getQuery()->getResult();
return $result;
}

总是返回 array[0]就是不明白

我可以改变它们的保存方式对于任何帮助,提前致谢

最佳答案

您需要在要搜索的值之前和/或之后为% 定义一个literal 标记;在这种情况下,您甚至不需要在短语前后使用单引号:

$qb = $this->em->createQueryBuilder();
$qb->select('u')
->from("myBundle:Entity", 'u')
->where($qb->expr()->like('u.tags', $qb->expr()->literal("%$tag%")))
$result=$qb->getQuery()->getResult();
return $result;

您可以关注所有 Doctrine expr class 的列表

关于php - Doctrine2 在字段数组中按值查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23875574/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com