Как вставить две записи в базу данных, в данный момент вставляя только одну - используя laravel - PullRequest
0 голосов
/ 11 июля 2019

Это запрос моего тела:

{
    "license_history": [
        {
            "user_id": 1,
            "medical_license":"01478" ,
            "medical_license_expiration_date": "2019-01-01",
            "state_issuing_medical_license": "Punjab",
            "degree_listed_on_license": "BS",
            "medical_license_issue_date": "2019-01-01"
        },
        {
            "user_id": 1,
            "medical_license":"852" ,
            "medical_license_expiration_date": "2019-01-01",
            "state_issuing_medical_license": "Punjab",
            "degree_listed_on_license": "BS",
            "medical_license_issue_date": "2019-01-01"
        }
    ]
}

Вставка в базу данных только одной записи, второй, я хочу вставить обе записи:

Мой контроллер:

if ($request->has('license_history')) {
    $licenseHistory = $body['license_history'];
    foreach ($licenseHistory as $history) {
        $medicalLicense = [
            'user_id' => $history['user_id'],
            'medical_license' => $history['medical_license'],
            'medical_license_expiration_date' => $history['medical_license'],
            'state_issuing_medical_license' => $history['medical_license'],
            'degree_listed_on_license' => $history['medical_license'],
            'medical_license_issue_date' => $history['medical_license_issue_date'],
        ];
        $medL = Medical_license::firstOrCreate(['user_id' => $history['user_id']], $medicalLicense);
        $medL->fill($history)->save();
    }
}

Этот код будет вставлять запись против user_id и будет обновляться, если запись уже существует с тем же идентификатором пользователя, но сейчас я хочу добавить обе записи своих объектов: Как я могу этого добиться?Заранее спасибо!

1 Ответ

0 голосов
/ 11 июля 2019

Вы должны использовать первый аргумент массива, чтобы определить, какие столбцы являются уникальными для каждой записи.Для меня, похоже, вы хотите, чтобы user_id и medical_license были уникальными.Если это так, вы должны сделать это так

 Medical_license::firstOrCreate(['user_id' => $history['user_id'], 'medical_license' => $history['medical_license']], $medicalLicense);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...