сортировка строк, относящихся к ключевому слову в определенных столбцах доктрины

У меня есть запрос, который ищет ключевое слово из разных столбцов

$queryBuilder                    =  $this->entityManager->getRepository(Contact::class)->createQueryBuilder("o");
$queryBuilder->where($queryBuilder->expr()->orX(
$queryBuilder->expr()->like("o.FirstName", ":name"),
$queryBuilder->expr()->like("o.Surname", ":name"),
$queryBuilder->expr()->like("o.Email", ":name"),
$queryBuilder->expr()->like("o.Biography", ":name"),
$queryBuilder->expr()->like("o.Department", ":name"),
$queryBuilder->expr()->like("p.Name", ":name"),
$queryBuilder->expr()->like("pc.Name", ":name"),
$queryBuilder->expr()->like("CONCAT(o.FirstName, ' ', o.Surname)", ":name")
))
->leftJoin(ContactPublication::class, "c", "WITH", "o.ID = c.Contact_ID")
->leftJoin(Publication::class, "p", "WITH", "p.ID = c.Publication_ID")
->leftJoin(Publication::class, "pc", "WITH", "pc.Contact_ID = o.ID")
->setParameter("name", "%" . $value . "%");

$query                           =  $queryBuilder->getQuery();
$contacts                        =  $query->getResult();

Единственная проблема заключается в том, что мне нужно привести строки, которые наиболее соответствуют с двумя столбцами o.FirstName а также o.Surname,

Например, если у меня есть ключевое слово abc и это ключевое слово приносит мне три строки.

Первый ряд имеет abc соответствует его o.Biography колонка

Второй ряд имеет abc соответствует его o.FirstName колонка

Третья строка имеет abc соответствует его o.Surname колонка

Я хочу получить данные, отсортированные как:

1-й ряд abc соответствует его o.FirstName колонка

2-й ряд abc соответствует его o.Surname колонка

3-й ряд abc соответствует его o.Biography колонка

Есть ли в доктрине фильтр, который это делает?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]