Конвертировать sql в docrine в хранилище - PullRequest
0 голосов
/ 08 октября 2018

У меня есть следующий sql:

SELECT * FROM `hex_articles_tree` tree 
LEFT JOIN hex_fields_i18n i18n 
ON i18n.tree_label_id = tree.id 
AND i18n.dos = 300
WHERE i18n.tree_label_id IS NOT NULL

Я хочу узнать, как преобразовать это в docrine createQueryBuilder У меня есть мой репозиторий Symfony:

namespace App\Repository;

use App\Entity\HexArticlesTree;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Symfony\Bridge\Doctrine\RegistryInterface;

/**
 * @method HexArticlesTree|null find($id, $lockMode = null, $lockVersion = null)
 * @method HexArticlesTree|null findOneBy(array $criteria, array $orderBy = null)
 * @method HexArticlesTree[]    findAll()
 * @method HexArticlesTree[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
 */
class HexArticlesTreeRepository extends ServiceEntityRepository
{
    public function __construct(RegistryInterface $registry)
    {
        parent::__construct($registry, HexArticlesTree::class);
    }
}

Как я могу добавить функциюс запросом предварительного просмотра?

Спасибо за вашу помощь


Редактировать мой текущий код выглядит так:

return $this->createQueryBuilder('tree')
            ->select('tree')
            ->leftJoin('App\Entity\HexFieldsI18n', 'i18n', 'WITH','i18n.tree_label = tree.id')
            ->Where('i18n.dos=:dos')
            ->andWhere('i18n.tree_label IS NOT NULL')
            ->setParameter('dos', $dos)
            ->getQuery()->getResult();
...