Всем привет.
Такой вопрос, не смог найти ответ в документации и на форума сообщества.
Есть достаточно простая таблица (MySQL). В ней поле title с UNIQUE индексом. Соответственно, в контроллере делается что-то подобное:
$Pages = new Pages();
$Pages->title = !empty ($streamPage['title']) ? $streamPage['title'] : 'Untitled';
$Pages->active = 1;
if ($Pages->save() == false){
foreach ($Pages->getMessages() as $errorMessage){
error_log ($errorMessage);
}
continue;
}
Однако если мы выполним этот же запрос 2 раза, мы получим логичную ошибку:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '...' for key 'title'
Можно как-то поймать duplicate entry и сделать update? Т.е через ORM воссоздать запрос
INSERT ... ON DUPLICATE KEY UPDATE ...