public function SelectExtender::orderBy in Drupal 9
Same name and namespace in other branches
- 8 core/lib/Drupal/Core/Database/Query/SelectExtender.php \Drupal\Core\Database\Query\SelectExtender::orderBy()
- 10 core/lib/Drupal/Core/Database/Query/SelectExtender.php \Drupal\Core\Database\Query\SelectExtender::orderBy()
Orders the result set by a given field.
If called multiple times, the query will order by each specified field in the order this method is called.
If the query uses DISTINCT or GROUP BY conditions, fields or expressions that are used for the order must be selected to be compatible with some databases like PostgreSQL. The PostgreSQL driver can handle simple cases automatically but it is suggested to explicitly specify them. Additionally, when ordering on an alias, the alias must be added before orderBy() is called.
Parameters
$field: The field on which to order. The field is escaped for security so only valid field and alias names are possible. To order by an expression, add the expression with addExpression() first and then use the alias to order on.
Example:
$query
->addExpression('SUBSTRING([thread], 1, (LENGTH([thread]) - 1))', 'order_field');
$query
->orderBy('order_field', 'ASC');
$direction: The direction to sort. Legal values are "ASC" and "DESC". Any other value will be converted to "ASC".
Return value
$this The called object.
Overrides SelectInterface::orderBy
2 calls to SelectExtender::orderBy()
- SearchQuery::execute in core/
modules/ search/ src/ SearchQuery.php - Executes the search.
- TableSortExtender::orderByHeader in core/
lib/ Drupal/ Core/ Database/ Query/ TableSortExtender.php - Order the query based on a header array.
File
- core/
lib/ Drupal/ Core/ Database/ Query/ SelectExtender.php, line 393
Class
- SelectExtender
- The base extender class for Select queries.
Namespace
Drupal\Core\Database\QueryCode
public function orderBy($field, $direction = 'ASC') {
$this->query
->orderBy($field, $direction);
return $this;
}