From: Vincent Vanwaelscappel Date: Mon, 24 Jun 2019 14:16:17 +0000 (+0200) Subject: #2843 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=dac02c1316ebf260bd0e3e74e60a8fd592c68e7e;p=cubist_cms-back.git #2843 --- diff --git a/src/app/Magic/Controllers/CubistMagicControllerTrait.php b/src/app/Magic/Controllers/CubistMagicControllerTrait.php index fa29ef4..b8a5ae0 100644 --- a/src/app/Magic/Controllers/CubistMagicControllerTrait.php +++ b/src/app/Magic/Controllers/CubistMagicControllerTrait.php @@ -7,6 +7,7 @@ use Cubist\Backpack\app\Magic\Models\CubistMagicAbstractModel; use Cubist\Backpack\app\Magic\Requests\CubistMagicRequest; use Cubist\Backpack\app\Magic\Requests\CubistMagicStoreRequest; use Cubist\Backpack\app\Magic\Requests\CubistMagicUpdateRequest; +use Illuminate\Support\Arr; trait CubistMagicControllerTrait { @@ -102,11 +103,41 @@ trait CubistMagicControllerTrait */ protected function _prepareCRUDData(CubistMagicRequest $request) { + + $appendComposite = []; foreach ($request->all() as $field => $content) { + $initialContent = $content; + $initialField = $field; + + $change = false; + $unsetInitial = false; if (is_array($content)) { - $request->request->set($field, json_encode($content)); + $content = json_encode($content); + $change = true; + } + $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); + } + } + + foreach ($appendComposite as $key => $value) { + $request->request->set($key, $value); } + return $request; }