Laravel/Mysql: не удалось установить для поля значение null

#php #mysql #laravel #voyager

Вопрос:

Я работаю над проектом laravel и пытаюсь дублировать запись в базе данных mysql. после репликации я хочу установить значение поля равным null(appointment_status). все работает, за исключением того, что значение новой записи (appointment_status) совпадает с исходной записью, даже если я установил для нее значение null.

     $newAppointment = $appointment->replicate();
    //push to get the id for the cloned record
    $newAppointment->push();
    $newAppointment->duplicated_from_id = $appointment->id;
    $newAppointment->appointment_status = null;
    $newAppointment->save();
    //updating the old appointment
    $appointment->duplicated_to_id = $newAppointment->id;
    $appointment->save();
 

Ответ №1:

Вместо целого блока кода попробуйте что-нибудь вроде этого:

 // replicate as the new record with some different fields
$newAppointment = $appointment->replicate()->fill([
    'duplicated_from_id' => $appointment->id,
    'appointment_status' => null,
])->save();

// update some fields of initial original record
$appointment->update([
    'duplicated_to_id' => $newAppointment->id,
]);
 

Для получения дополнительной информации ознакомьтесь с этим.