Commit | Line | Data |
---|---|---|
3176b04c CW |
1 | <?php |
2 | /* | |
3 | +--------------------------------------------------------------------+ | |
4 | | Copyright CiviCRM LLC. All rights reserved. | | |
5 | | | | |
6 | | This work is published under the GNU AGPLv3 license with some | | |
7 | | permitted exceptions and without any warranty. For full license | | |
8 | | and copyright information, see https://civicrm.org/licensing | | |
9 | +--------------------------------------------------------------------+ | |
10 | */ | |
11 | ||
12 | namespace Civi\Api4\Query; | |
13 | ||
14 | /** | |
15 | * Sql column expression | |
16 | */ | |
17 | class SqlField extends SqlExpression { | |
18 | ||
19 | protected function initialize() { | |
19fde02c CW |
20 | if ($this->alias && $this->alias !== $this->expr) { |
21 | throw new \API_Exception("Aliasing field names is not allowed, only expressions can have an alias."); | |
22 | } | |
c9e3ae2e | 23 | $this->fields[] = $this->expr; |
3176b04c CW |
24 | } |
25 | ||
26 | public function render(array $fieldList): string { | |
c9e3ae2e CW |
27 | if (empty($fieldList[$this->expr])) { |
28 | throw new \API_Exception("Invalid field '{$this->expr}'"); | |
3176b04c | 29 | } |
c9e3ae2e | 30 | return $fieldList[$this->expr]['sql_name']; |
3176b04c CW |
31 | } |
32 | ||
33 | } |