Kdyby\Doctrine\ResultSet::applySorting PHP 메소드

applySorting() 공개 메소드

public applySorting ( string | array $columns ) : ResultSet
$columns string | array
리턴 ResultSet
    public function applySorting($columns)
    {
        $this->updating();
        $sorting = [];
        foreach (is_array($columns) ? $columns : func_get_args() as $name => $column) {
            if (!is_numeric($name)) {
                $column = $name . ' ' . $column;
            }
            if (!preg_match('~\\s+(DESC|ASC)\\s*\\z~i', $column = trim($column))) {
                $column .= ' ASC';
            }
            $sorting[] = $column;
        }
        if ($sorting) {
            $dql = Strings::normalize($this->query->getDQL());
            if (!preg_match('~^(.+)\\s+(ORDER BY\\s+((?!FROM|WHERE|ORDER\\s+BY|GROUP\\sBY|JOIN).)*)\\z~si', $dql, $m)) {
                $dql .= ' ORDER BY ';
            } else {
                $dql .= ', ';
            }
            $this->query->setDQL($dql . implode(', ', $sorting));
        }
        $this->iterator = NULL;
        return $this;
    }