public function getData(array $p_params, array $p_cols)
{
$qb = $this->createQueryBuilder('e');
if (!empty($p_params['sSearch'])) {
$qb->where($this->buildWhere($p_cols, $p_params['sSearch']));
}
// sort
foreach (array_keys($p_cols) as $id => $property) {
if (!is_string($property)) {
// not sortable
continue;
}
if (isset($p_params["iSortCol_{$id}"])) {
$dir = $p_params["sSortDir_{$id}"] ?: 'asc';
$qb->orderBy("e.{$property}", $dir);
}
}
// limit
$qb->setFirstResult((int) $p_params['iDisplayStart'])->setMaxResults((int) $p_params['iDisplayLength']);
return $qb->getQuery()->getResult();
}