Newscoop\Entity\Repository\FeedbackRepository::getData PHP Method

getData() public method

Get data for table
public getData ( array $params, array $cols ) : Comment[]
$params array
$cols array
return Comment[]
    public function getData(array $params, array $cols)
    {
        $qb = $this->createQueryBuilder('e');
        $qb->from('Newscoop\\Entity\\User', 's');
        $andx = $qb->expr()->andx();
        $andx->add($qb->expr()->eq('e.user', new Expr\Literal('s.id')));
        if (!empty($params['sSearch'])) {
            $this->buildWhere($cols, $params['sSearch'], $qb, $andx);
        }
        if (!empty($params['sFilter'])) {
            $this->buildFilter($cols, $params['sFilter'], $qb, $andx);
        }
        // sort
        if (isset($params['iSortCol_0'])) {
            $colsIndex = array_keys($cols);
            $sortId = $params['iSortCol_0'];
            $sortBy = $colsIndex[$sortId];
            $dir = $params['sSortDir_0'] ?: 'asc';
            switch ($sortBy) {
                case 'user':
                    $qb->orderBy('s.username', $dir);
                    break;
                case 'message':
                    $qb->orderBy('e.time_created', $dir);
                    break;
                case 'url':
                    $qb->orderBy('e.url', $dir);
                    break;
                case 'index':
                    $qb->orderBy('e.time_created', $dir);
                    break;
                default:
                    $qb->orderBy('e.' . $sortBy, $dir);
            }
        }
        $qb->where($andx);
        // limit
        if (isset($params['iDisplayLength'])) {
            $qb->setFirstResult((int) $params['iDisplayStart'])->setMaxResults((int) $params['iDisplayLength']);
        }
        return $qb->getQuery()->getResult();
    }