Laravel Как сделать POST, который обрабатывает массив объектов? - PullRequest
0 голосов
/ 02 апреля 2020

Вот модель таблицы, в которую я пытаюсь вставить:

  protected $table ="final_schedule";
  public $timestamps = false;

  protected $fillable = [
    'CWID', //varchar
    'CRN', //int
    'Date_Registered'//date
  ];

Это функция вставки, которую я сейчас имею:

<?php

namespace App\Http\Controllers\Student;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\finalScheduleModel;

class finalScheduleController extends Controller
{
    public function insert(Request $request){
      $finalSchedule = new finalScheduleModel;
      $finalSchedule->CWID=$request->input('CWID');
      $finalSchedule->CRN=$request->input('CRN');
      $finalSchedule->Date_Registered=$request->input('Date_Registered');
      $finalSchedule->save();
    }
}

Маршрут: Route::post('insert/', 'Student\finalScheduleController@insert');

Вот данные, которые я хочу обработать:

[
    {
    "CWID":"C38475920",
    "CRN":345627,
    "Date_Registered":"2020-04-02"
    },
    {
    "CWID":"C38475920",
    "CRN":678595,
    "Date_Registered":"2020-04-02"
    },
    {
    "CWID":"C38475920",
    "CRN":473876,
    "Date_Registered":"2020-04-02"
    }
]

По крайней мере, я так думаю. Является ли структура данных выше такой же, как эта?

(3) [{…}, {…}, {…}]
0: {…}
1: {…}
2: {…}

1 Ответ

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

Вы можете даже вставить несколько записей в таблицу одним вызовом, чтобы вставить

$items = $request->all();

$items = [
    [
       "CWID"=>"C38475920",
       "CRN"=>345627,
       "Date_Registered"=>"2020-04-02"
    ],
    [
       "CWID"=>"C38475920",
       "CRN"=>678595,
       "Date_Registered"=>"2020-04-02"
    ],
    [
       "CWID"=>"C38475920",
       "CRN"=>473876,
       "Date_Registered"=>"2020-04-02"
    ]
]

finalScheduleModel::insert($items);

или

DB::table('final_schedule')->insert($items);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...