parent::handle($request, $next);
$appendComposite = [];
+ $newBag = [];
foreach ($request->all() as $field => $content) {
- $initialContent = $content;
- $initialField = $field;
-
- $change = false;
- $unsetInitial = false;
$e = explode('___', $field);
if (count($e) > 1) {
- $change = false;
+
$unsetInitial = true;
$field = $e[0];
for ($i = 1; $i < count($e); $i++) {
$field .= '.' . $e[$i];
}
Arr::set($appendComposite, $field, $content);
- }
-
- if ($change) {
- $request->request->set($field, $content);
- }
- if ($unsetInitial) {
- $request->request->set($initialField, null);
+ } else {
+ $newBag[$field] = $content;
}
}
+ $newBag = array_merge($newBag, $appendComposite);
+ $request->request->replace($newBag);
- foreach ($appendComposite as $key => $value) {
- $request->request->set($key, $value);
- }
return $this->getResponse();
}
}