Hallo,
mit folgenden Code versuche ich ein Datensatz anzulegen / zu überschreiben:
Der Datensatz existiert nicht, also soll er angelegt werden.
Laut Handbuch soll genau das mit der Methode updateOrCreate() gehen. Aber SQL gibt eine Fehlermeldung aus:
Die id_vehicle ist vorhanden.
Was ich nicht verstehe ist der Query:
Eigentllich erwarte ich bei Insert
Zumindest verstehe ich so die Doku (Auszug):
Warum wird der Insert-Query nur "verstümmelt" gebildelt?
mit folgenden Code versuche ich ein Datensatz anzulegen / zu überschreiben:
PHP-Code:
...
VehicleInsurance::updateOrCreate(
['id_vehicle' => $idVehicle, 'id_insurance' => $idInsurance],
[
'contract_number' => $contractNumber,
'id_insurance_partner' => isset($current['id_insurance_partner']) ? (int) $current['id_insurance_partner'] : null,
'vat_inclusive' => isset($current['vat_inclusive']) ? (int) $current['vat_inclusive'] : 1,
'amount' => $amount,
'id_payment_interval' => $idPaymentInterval,
'date_first_payment' => $dateFirstPayment,
'id_payment_form' => $idPaymentForm,
'id_editor' => $this->idEditor,
]
);
...
Laut Handbuch soll genau das mit der Methode updateOrCreate() gehen. Aber SQL gibt eine Fehlermeldung aus:
Code:
[2019-10-30 15:41:45] test.ERROR: SQLSTATE[HY000]: General error: 1364 Field 'id_vehicle' doesn't have a default value (SQL: insert into `vehicle_insurances` (`contract_number`, `id_insurance_partner`, `vat_inclusive`, `amount`, `id_payment_interval`, `date_first_payment`, `id_payment_form`, `id_editor`) values (?, ?, 1, 0, ?, ?, ?, 1)) ...
Was ich nicht verstehe ist der Query:
Code:
insert into `vehicle_insurances` (`contract_number`, `id_insurance_partner`, `vat_inclusive`, `amount`, `id_payment_interval`, `date_first_payment`, `id_payment_form`, `id_editor`) values (?, ?, 1, 0, ?, ?, ?, 1)
Code:
insert into `vehicle_insurances` (`id_vehicle`, `id_insurance`, `contract_number`, `id_insurance_partner`, `vat_inclusive`, `amount`, `id_payment_interval`, `date_first_payment`, `id_payment_form`, `id_editor`) values (?, ?, ?, ?, 1, 0, ?, ?, ?, 1)
PHP-Code:
// If there's a flight from Oakland to San Diego, set the price to $99.
// If no matching model exists, create one.
$flight = App\Flight::updateOrCreate( ['departure' => 'Oakland', 'destination' => 'San Diego'], ['price' => 99, 'discounted' => 1] );
Kommentar