Newscoop\Entity\Repository\CommentRepository::buildFilter PHP Method

buildFilter() protected method

Build filter condition
protected buildFilter ( array $p_cols, array $p_filter, $qb, $andx )
$p_cols array
$p_filter array
    protected function buildFilter(array $p_cols, array $p_filter, $qb, $andx)
    {
        foreach ($p_filter as $key => $values) {
            if (!is_array($values)) {
                $values = array($values);
            }
            $orx = $qb->expr()->orx();
            switch ($key) {
                case 'status':
                    $mapper = array_flip(Comment::$status_enum);
                    foreach ($values as $value) {
                        $orx->add($qb->expr()->eq('e.status', $mapper[$value]));
                    }
                    break;
                case 'id':
                case 'forum':
                case 'thread':
                case 'language':
                    foreach ($values as $value) {
                        $orx->add($qb->expr()->eq("e.{$key}", $value));
                    }
                    break;
                case 'recommended':
                    foreach ($values as $value) {
                        $orx->add($qb->expr()->eq('e.recommended', $value));
                    }
            }
            $andx->add($orx);
        }
        return $andx;
    }