Как вставить несколько строк (массив объектов) без использования l oop в Laravel? - PullRequest
0 голосов
/ 26 апреля 2020

Я использую Angular в качестве внешнего интерфейса, а параметры, отправляемые на публикацию в laravel, представляют собой массив объектов. Я хочу вставить большую часть элементов без использования l oop. Это возможно ?? Если да, то как мне этого добиться ??

RoomAvailability Controller в Php

public function storeRoomAvailability()
{
    $roomId = request();
    $test = RoomAvailability::where('room_id', $roomId->room_id)->get();
    if (is_null($test)) {

        return response()->json([
            'success' => false,
            'message' => 'The room is already taken'
        ]);
    } else {

        $roomAvailability = RoomAvailability::create([$this->validateRequest()]);

        return response()->json([
            'success' => true,
            'message' => 'Room Availability has been created successfully.',
            'data' => $roomAvailability
        ]);
    }
}

private function validateRequest()
{
    return request()->validate([
        'room_id' => 'required |unique:room_availabilities',
        'reservation_id' => 'nullable',
        'booking_id' => 'required',
        'check_in_date' => 'required',
        'check_out_date' => 'required'
    ]);
}

Параметры от Angular 8

[
  {
    "reservation_id": 25,
    "room_id": 1,
    "check_in_date": "2020-04-27 12:00:00",
    "check_out_date": "2020-04-30 12:00:00",
    "availability": false,
    "status": "booked",
    "booking_id": 26
   },
  {
    "reservation_id": 26,
    "room_id": 2,
    "check_in_date": "2020-04-27 12:00:00",
    "check_out_date": "2020-04-30 12:00:00",
    "availability": false,
    "status": "booked",
    "booking_id": 26
   }
]

1 Ответ

0 голосов
/ 26 апреля 2020

сначала преобразуйте параметры из angular в ассоциативные массивы

$arrayValues=json_decode($Parameters_from_Angular,true);

, затем вставьте новые значения, используя массовую вставку:

RoomAvailability::insert($arrayValues);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...