dql select вернуть пустой результат symfony 3

Я пытаюсь получить все видео из БД, которые содержат ключевое слово. Это API REST-сборка с Symfony 3. Вот пример URL

http://localhost/Server/symfony/web/app_dev.php/video/search/prueba

Где «prueba» это ключевое слово, которое я пытаюсь найти

Вот функция ..

public function searchAction(Request $request, $search = null){
$helper = $this->get("app.helper");
$em = $this->getDoctrine()->getManager();
if($search != null){
$dql = "SELECT v.title FROM BackendBundle:Video v ". "WHERE v.title LIKE :search OR ". "v.description LIKE :search ORDER BY v.id DESC";

$query = $em->createQuery($dql)
->setParameter("search", "%search%");
} else {
$dql = "SELECT v FROM BackendBundle:Video v ORDER BY v.id DESC";
$query = $em->createQuery($dql);
}
$page = $request->query->getInt("page", 1);
$paginator = $this->get("knp_paginator");
$items_per_page = 6;
$pagination = $paginator->paginate($query, $page, $items_per_page);

$total_items_count = $pagination->getTotalItemCount();
$data = array(
"status" => "success",
"total_items_count" => $total_items_count,
"page_actual" => $page,
"items_per_page" => $items_per_page,
"total_pages" => ceil($total_items_count/$items_per_page),
"data" => $pagination
);
return $helper->toJson($data);
}

Результат должен быть в формате JSON с 4 видео .. но я получаю

{
"status": "success",
"total_items_count": 0,
"page_actual": 1,
"items_per_page": 6,
"total_pages": 0,
"data": []
}

где «data» — массив с видеоданными

Кто-нибудь знает, что я скучаю? DQL проконсультироваться .. это верно?

Кто-нибудь может сказать мне, в чем ошибка? Мне нужна подсказка .. DQL консультироваться правильно?

1

Решение

Я вижу, вы используете knp_paginator оказание услуг. Попробуйте получить предметы из пагинатора следующим образом:

$data = array(
"status" => "success",
"total_items_count" => $total_items_count,
"page_actual" => $page,
"items_per_page" => $items_per_page,
"total_pages" => ceil($total_items_count/$items_per_page),
"data" => $pagination->getItems()
);
0

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

Спасибо за ваши повторы, ребята!

Итак … я допустил ошибку при наборе текста … и забыл знак $ перед поисковым словом ..

это была проблема

    $query = $em->createQuery($dql)
->setParameter("search", "%search%"); <-- here

Огромное спасибо!!

0

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