Сохранить массив внутри массива в дБ, используя laravel - PullRequest
1 голос
/ 27 апреля 2020

У меня есть общий массив из запроса с именем completemntartData []. Из этого массива я получаю некоторые значения. Мне нужно сохранить эти данные в поле таблицы базы данных. Я использовал функцию implode, но она показывает преобразование массива в строку. this is complementaryData


    if($request->input('complementaryData')){
       foreach($request->input('complementaryData') as $name => $value){
          $data = explode ("_", $name);
          $A = [];
          $B = [];
          if($data[0]=="TextField"){
            $B["id"] = $data[1];
            $A["TextField"] = &$B;
            $B["data"] = $value;
           }
           if($data[0]=="Archive"){
              $B["id"] = $data[1];
              $A["Archive"] = &$B;
              $B["data"] = $value;
           }
           if($data[0]=="MultipleChoice"){
              $B["id"] = $data[1];
              $A["MultipleChoice"] = &$B;
              $B["sub"] = $value;
           }
           $eventParticipants->complementaryData = implode(',',$A);
           //dd($eventParticipants->complementaryData);
        }
   }

1 Ответ

0 голосов
/ 27 апреля 2020
implode(',', $A['Archive']);

Ошибка возникает из-за того, что вы передали многомерный массив для взрыва: implode-data-a-a-multi-Dimension-массив

Также, если вы хотите сохранить массив данные в одном поле, я бы предпочел использовать serialize : serialize ($ A) можно легко распаковать с помощью функции unserialize ()

...