У меня есть таблица, которая определена так:
Schema::create('tableA', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id')->unsigned();
$table->integer('label_id')->unsigned();
$table->date('date');
$table->integer('value');
$table->unique(['user_id','label_id','date']);
$table->timestamps();
});
В таблице используется составной ключ user_id, label_id и даты.
Я бы хотел обновить таблицу, используя метод Model :: updateOrCreate, таким образом:
Model::updateOrCreate(
[
'user_id' => $user_id,
'label_id' => $label_id,
'date' => $date,
'value' => $value,
]);
Но я получаю ошибку, если запускаю метод, когда строка с составным ключом уже существует, потому что кажется, что Laravel не работает с составными ключами.
Например, строка
[
user_id:2,
label_id:3,
date:'2019-04-04',
value: 44
]
не может быть обновлено с помощью
Model::updateOrCreate([
user_id:2,
label_id:3,
date:'2019-04-04',
value: 100
]);
Значит ли это, что нет способа использовать updateOrCreate, и мне нужно проверять каждую строку, если она существует, прежде чем пытаться добавить ее?