Newscoop\Datatable\Source::buildWhere PHP 메소드

buildWhere() 개인적인 메소드

Build where condition
private buildWhere ( array $p_cols, $p_search, $qb = null, $andx = null ) : Doctrine\ORM\Query\Expr
$p_cols array
리턴 Doctrine\ORM\Query\Expr
    private function buildWhere(array $p_cols, $p_search, $qb = null, $andx = null)
    {
        $qb = $this->createQueryBuilder('e');
        $or = $qb->expr()->orx();
        foreach (array_keys($p_cols) as $i => $property) {
            if (!is_string($property)) {
                // not searchable
                continue;
            }
            if ($property == 'user') {
                $or->add($qb->expr()->like("u.username", $qb->expr()->literal("%{$p_search}%")));
            } else {
                $or->add($qb->expr()->like("e.{$property}", $qb->expr()->literal("%{$p_search}%")));
            }
        }
        return $or;
    }