| @@ 103-119 (lines=17) @@ | ||
| 100 | * field names, and the array values are the corresponding object property |
|
| 101 | * names or PHP callables returning the field values. |
|
| 102 | */ |
|
| 103 | protected function resolveFieldList($fields): array |
|
| 104 | { |
|
| 105 | $fields = $this->extractRootFields($fields); |
|
| 106 | $result = []; |
|
| 107 | ||
| 108 | foreach ($this->fields() as $field => $definition) { |
|
| 109 | if (is_int($field)) { |
|
| 110 | $field = $definition; |
|
| 111 | } |
|
| 112 | ||
| 113 | if (empty($fields) || in_array($field, $fields, true)) { |
|
| 114 | $result[$field] = $definition; |
|
| 115 | } |
|
| 116 | } |
|
| 117 | ||
| 118 | return $result; |
|
| 119 | } |
|
| 120 | ||
| 121 | /** |
|
| 122 | * Determines which expand fields can be returned by [[toArray()]]. |
|
| @@ 132-152 (lines=21) @@ | ||
| 129 | * field names, and the array values are the corresponding object property |
|
| 130 | * names or PHP callables returning the field values. |
|
| 131 | */ |
|
| 132 | protected function resolveExpandList($expand): array |
|
| 133 | { |
|
| 134 | if (empty($expand)) { |
|
| 135 | return []; |
|
| 136 | } |
|
| 137 | ||
| 138 | $fields = $this->extractRootFields($expand); |
|
| 139 | $result = []; |
|
| 140 | ||
| 141 | foreach ($this->extraFields() as $field => $definition) { |
|
| 142 | if (is_int($field)) { |
|
| 143 | $field = $definition; |
|
| 144 | } |
|
| 145 | ||
| 146 | if (in_array($field, $fields, true)) { |
|
| 147 | $result[$field] = $definition; |
|
| 148 | } |
|
| 149 | } |
|
| 150 | ||
| 151 | return $result; |
|
| 152 | } |
|
| 153 | ||
| 154 | /** |
|
| 155 | * @param string $field name of the field to be resolved. |
|