Я хотел бы обновить старую таблицу с составным первичным ключом.Для генерации полного запроса на обновление, такого как:
UPDATE foos SET (...) WHERE pk1 = ? AND pk2 = ?;
Вместо этого Eloquent пытается выполнить следующее, что приводит к массовому обновлению:
UPDATE foos SET (...) WHERE pk1 = ?;
Я установил для атрибута первичного ключа значение null
как видно в Google:
class Foo extends Model {
protected $guarded = [];
protected $primaryKey = null;
public $incrementing = false;
public $timestamps = false;
}
Но я получаю эту ошибку:
Illuminate\Database\QueryException: SQLSTATE[42S22]:
Column not found: 1054 Unknown column '' in 'where clause'
(SQL: update `previews` set `preview_id` = 1805 where `` is null) in
./vendor/illuminate/database/Connection.php on line 664
Я полагаю, что это не поддерживается Eloquent, поэтому как мне сгенерировать update
запрос?
Мой запрос на обновление был:
$p = Foo
::where('pk1', $foo)
->where('pk2', $bar)
->first();
$p->update('column', 42);