через find указать модели что она не новая и что ее надо апдейтить, а не инсертить?
Надо определиться - кто назначает ID. Если база - т.е. если поле стоит auto_increment - то указывать его в данных load не надо, его должна присвоить база при выполнении insert. Если id назначается приложением - скажем, такое может быть при использовании uuid - то именно приложение должно отвечать за то, что такой id в базе точно отсутствует.
Используйте updateAll к примеру для обновления, ID используйте как определения того, куда надо внести изменения
Вот пример // UPDATE DB_name SET status = 1 WHERE 'id' = 1 DB_name::updateAll(['status' => 1], ['id' => 1]);
https://github.com/yiisoft/yii2/blob/ab1c653fb788383c4b8b628bc1f0021b06316427/framework/db/ActiveRecord.php#L507
Обсуждают сегодня