Метод from класса QueryBuilder
Метод from класса QueryBuilder указывает,
из какой сущности (таблицы) будут выбираться
данные. Первым параметром передаётся имя сущности,
вторым - её псевдоним (алиас), который затем
используется в других частях запроса. Метод
возвращает сам объект QueryBuilder, поэтому
его можно объединять в цепочку с другими методами.
Синтаксис
from(entity, alias)
Пример
Давайте создадим QueryBuilder и укажем, что данные
берутся из сущности Article с псевдонимом
a:
<?php
namespace App\Controller;
use App\Entity\Article;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
class ArticleController extends AbstractController
{
public function index(EntityManagerInterface $em): Response
{
$qb = $em->createQueryBuilder();
$qb->select('a')
->from(Article::class, 'a');
$res = $qb->getQuery()->getResult();
return new Response(count($res));
}
}
?>
Результат выполнения кода:
3
Пример
Давайте укажем псевдоним явно и используем его
в условии where:
<?php
namespace App\Controller;
use App\Entity\Article;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
class ArticleController extends AbstractController
{
public function index(EntityManagerInterface $em): Response
{
$qb = $em->createQueryBuilder();
$qb->select('a')
->from(Article::class, 'a')
->where('a.title = :title')
->setParameter('title', 'abcde');
$res = $qb->getQuery()->getResult();
return new Response(count($res));
}
}
?>
Результат выполнения кода:
1
Смотрите также
-
класс
QueryBuilder,
который строит DQL-запросы -
метод
select,
который задаёт выбираемые поля -
метод
where,
который задаёт условие выборки -
метод
getQuery,
который возвращает готовый объект Query