Попытка разместить массив объектов в Laravel. ErrorException: создание объекта по умолчанию из пустого значения в файле - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь отправить запрос POST с таким набором данных:

[
    {
    "Course_Code":"CIS341",
    "Start_Date":"2020-08-22",
    "End_Date":"2020-12-02",
    "CRN":345627,
    "CWID":"C38475920",
    "Date_Registered":"2020-04-02"
    },
    {
    "Course_Code":"CIS341",
    "Start_Date":"2020-08-22",
    "End_Date":"2020-12-02",
    "CRN":456392,
    "CWID":"C38475920",
    "Date_Registered":"2020-04-02"
    },
    {
    "Course_Code":"CIS341",
    "Start_Date":"2020-08-22",
    "End_Date":"2020-12-02",
    "CRN":562940,
    "CWID":"C38475920",
    "Date_Registered":"2020-04-02"
    }
]

Но я хочу вставить только CRN, CWID, Date_Registered из каждого из этих объектов в мой таблица final_schedule:

protected $table ="final_schedule";
  public $timestamps = false;
  protected $fillable = [
    'CWID',
    'CRN',
    'Date_Registered'
  ];

Вот функция вставки, которую я использую:

public function insert(Request $request){
      $CWID->CWID = $request->input('CWID');
      $CRN->CRN = $request->input('CRN');
      $Date_Registered->Date_Registered = $request->input('Date_Registered');

      $items = array('CWID'=>$CWID, 'CRN'=>$CRN, 'Date_Registered'=>$Date_Registered);
      finalScheduleModel::insert($items);
    }

Когда я проверяю эту функцию вставки в почтальоне, она выдает ошибку: ErrorException: Creating default object from empty value in file И строка, на которую указывает ошибка, является первой строкой функции $CWID->CWID = $request->input('CWID'); Я пытался написать эту функцию разными способами, но я продолжаю получать ошибки в том же ключе. Он никогда не читает какие-либо данные, передаваемые через. Это может говорить что-то вроде попытки вставить значения CWID, CRN, Date_Registered (?,?,?) В final_schedule.

1 Ответ

1 голос
/ 08 апреля 2020

Попробуйте, посмотрите, работает ли это для вас.

public function insert(Request $request){
          $array = [];
    foreach (request()->all() as $value) {
        array_push($array, ['CWID' => $value['CWID'], 'CRN' => $value['CRN'], 'Date_Registered' => $value['Date_Registered']]);
    }

    DB::table('final_schedule')->insert($array);
    }
...