DqlBuilder не возвращает значения, но MySQL делает - PullRequest
0 голосов
/ 02 февраля 2019

У меня есть метод findByTag(), который должен возвращать энтиты с %#i%, но это не так.Это SQL, который построил dql: SELECT p0_.id AS id_0, p0_.content AS content_1, p0_.date AS date_2, p0_.user_id AS user_id_3 FROM post p0_ INNER JOIN user u1_ ON p0_.user_id = u1_.id LEFT JOIN points p2_ ON p0_.id = p2_.post_id LEFT JOIN comments c3_ ON p0_.id = c3_.post_id WHERE p0_.content LIKE '%#i%' ORDER BY p0_.date DESC LIMIT 20 Если я введу его в MySQL, он вернет его нормально.

mysql

У кого-нибудь есть идея?

        $dql = $this->createQueryBuilder('p')
            ->innerJoin('p.user', 'c')
            ->leftJoin('p.points', 'pp')
            ->leftJoin('p.comments', 'cc')
            ->Where('p.content LIKE \'%#i%\'')
            ->setMaxResults($max)
            ->orderBy('p.date','DESC');
        $dql->getQuery()
            ->getResult();
        return $dql;

1 Ответ

0 голосов
/ 02 февраля 2019

попробуйте

   $dql = $this->createQueryBuilder()
            ->from('YourBundleName:YourEntityName', 'p')
            ->innerJoin('YourBundleName.user', 'c')
            ->leftJoin('YourBundleName.points', 'pp')
            ->leftJoin('YourBundleName.comments', 'cc')
            ->Where('p.content LIKE \'%#i%\'')
            ->setMaxResults($max)
            ->orderBy('p.date','DESC');
        return $dql->getQuery()->getResult();
...