嗨,我得到了以下内容:
$query = $qb->select($qb->expr()->substring("p.website",1,$qb->expr()->length("p.website")-4))
->from("AppBundle\Entity\Image" ,"p")
->getQuery();
并得到以下例外:
Notice: Object of class Doctrine\ORM\Query\Expr\Func could not be converted to int
我理解为什么抛出这个异常,但是如何使用Query Builder获取基于字符串大小的子字符串?
答案 0 :(得分:1)
好的,明白了......
表达式$qb->expr()->length("p.website")
首先转换为LENGTH("p.website")
所以-4必须以字符串形式连接。
$qb->expr()->length("p.website") **.'-4'**
$query = $qb->select($qb->expr()->substring("p.website",1,$qb->expr()->length("p.website").'-4))
->from("AppBundle\Entity\Image" ,"p")
->getQuery();
答案 1 :(得分:0)
在EntityRepository
:
public function getAll()
{
$qb = $this->createQueryBuilder('p');
$query = $qb
->select($qb->expr()->substring("p.website", 1, $qb->expr()->length("p.website").'-4'))
->getQuery();
return $query->getResult();
}