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
{
*/
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;
}