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