| @@ 163-216 (lines=54) @@ | ||
| 160 | return $requestAttributes; |
|
| 161 | } |
|
| 162 | ||
| 163 | public function setQueryOptionsFromRequestWithCustomFilter(Request $request = null, $filter) |
|
| 164 | { |
|
| 165 | $requestAttributes = self::getRequestAttributes($request); |
|
| 166 | ||
| 167 | $filters = $request->query->get('filtering', []); |
|
| 168 | $orFilters = $request->query->get('filtering_or', []); |
|
| 169 | $sorting = $request->query->get('sorting', []); |
|
| 170 | $printing = $request->query->get('printing', []); |
|
| 171 | $rel = $request->query->get('rel', ''); |
|
| 172 | $page = $request->query->get('page', ''); |
|
| 173 | $select = $request->query->get('select', $this->entityAlias); |
|
| 174 | $filtering = $request->query->get('filtering', ''); |
|
| 175 | $limit = $request->query->get('limit', ''); |
|
| 176 | ||
| 177 | $filters = array_merge($filters, $filter); |
|
| 178 | ||
| 179 | $filterOrCorrected = []; |
|
| 180 | ||
| 181 | $count = 0; |
|
| 182 | foreach ($orFilters as $key => $filter) { |
|
| 183 | if (is_array($filter)) { |
|
| 184 | foreach ($filter as $keyInternal => $internal) { |
|
| 185 | $filterOrCorrected[$keyInternal .'|' . $count] = $internal; |
|
| 186 | $count = $count + 1; |
|
| 187 | } |
|
| 188 | } else { |
|
| 189 | $filterOrCorrected[$key] = $filter; |
|
| 190 | } |
|
| 191 | } |
|
| 192 | ||
| 193 | $requestProperties = [ |
|
| 194 | '_route' => $request->attributes->get('_route'), |
|
| 195 | 'customer_id' => $request->attributes->get('customer_id'), |
|
| 196 | 'id' => $request->attributes->get('id'), |
|
| 197 | 'filtering' => $filtering, |
|
| 198 | 'limit' => $limit, |
|
| 199 | 'page' => $page, |
|
| 200 | 'filters' => $filters, |
|
| 201 | 'orFilters' => $filterOrCorrected, |
|
| 202 | 'sorting' => $sorting, |
|
| 203 | 'rel' => $rel, |
|
| 204 | 'printing' => $printing, |
|
| 205 | 'select' => $select, |
|
| 206 | ]; |
|
| 207 | ||
| 208 | $options = array_merge( |
|
| 209 | $requestAttributes, |
|
| 210 | $requestProperties |
|
| 211 | ); |
|
| 212 | ||
| 213 | $this->queryOptions = QueryBuilderOptions::fromArray($options); |
|
| 214 | ||
| 215 | return $this; |
|
| 216 | } |
|
| 217 | ||
| 218 | public function setQueryOptionsFromRequestWithCustomOrFilter(Request $request = null, $orFilter) |
|
| 219 | { |
|
| @@ 218-271 (lines=54) @@ | ||
| 215 | return $this; |
|
| 216 | } |
|
| 217 | ||
| 218 | public function setQueryOptionsFromRequestWithCustomOrFilter(Request $request = null, $orFilter) |
|
| 219 | { |
|
| 220 | $requestAttributes = self::getRequestAttributes($request); |
|
| 221 | ||
| 222 | $filters = $request->query->get('filtering', []); |
|
| 223 | $orFilters = $request->query->get('filtering_or', []); |
|
| 224 | $sorting = $request->query->get('sorting', []); |
|
| 225 | $printing = $request->query->get('printing', []); |
|
| 226 | $rel = $request->query->get('rel', ''); |
|
| 227 | $page = $request->query->get('page', ''); |
|
| 228 | $select = $request->query->get('select', $this->entityAlias); |
|
| 229 | $filtering = $request->query->get('filtering', ''); |
|
| 230 | $limit = $request->query->get('limit', ''); |
|
| 231 | ||
| 232 | $orFilters = array_merge($orFilters, $orFilter); |
|
| 233 | ||
| 234 | $filterOrCorrected = []; |
|
| 235 | ||
| 236 | $count = 0; |
|
| 237 | foreach ($orFilters as $key => $filter) { |
|
| 238 | if (is_array($filter)) { |
|
| 239 | foreach ($filter as $keyInternal => $internal) { |
|
| 240 | $filterOrCorrected[$keyInternal .'|' . $count] = $internal; |
|
| 241 | $count = $count + 1; |
|
| 242 | } |
|
| 243 | } else { |
|
| 244 | $filterOrCorrected[$key] = $filter; |
|
| 245 | } |
|
| 246 | } |
|
| 247 | ||
| 248 | $requestProperties = [ |
|
| 249 | '_route' => $request->attributes->get('_route'), |
|
| 250 | 'customer_id' => $request->attributes->get('customer_id'), |
|
| 251 | 'id' => $request->attributes->get('id'), |
|
| 252 | 'filtering' => $filtering, |
|
| 253 | 'limit' => $limit, |
|
| 254 | 'page' => $page, |
|
| 255 | 'filters' => $filters, |
|
| 256 | 'orFilters' => $filterOrCorrected, |
|
| 257 | 'sorting' => $sorting, |
|
| 258 | 'rel' => $rel, |
|
| 259 | 'printing' => $printing, |
|
| 260 | 'select' => $select, |
|
| 261 | ]; |
|
| 262 | ||
| 263 | $options = array_merge( |
|
| 264 | $requestAttributes, |
|
| 265 | $requestProperties |
|
| 266 | ); |
|
| 267 | ||
| 268 | $this->queryOptions = QueryBuilderOptions::fromArray($options); |
|
| 269 | ||
| 270 | return $this; |
|
| 271 | } |
|
| 272 | ||
| 273 | public function getQueryBuilderOptions() |
|
| 274 | { |
|