我正在尝试从包含关键字的数据库中获取所有视频,这是使用 Symfony 3 构建的 API REST。这是 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);
}
结果应该是一个带有 4 个视频的 JSON .. 但我明白了
{
"status": "success",
"total_items_count": 0,
"page_actual": 1,
"items_per_page": 6,
"total_pages": 0,
"data": []
}
其中“data”是一个包含视频数据的数组
有人知道我想念什么吗?dql 咨询.. 正确吗?
有人可以告诉我是什么错误吗?我需要一个线索.. dql 咨询是否正确?