Частенько требуется проверять на уникальность 2-3 поля.
У меня два варианта.
1) Перед добавлением/изменением делать запрос для проверки, в случаи проблемы генерировать ошибку
2) Создать в таблице уникальный индекс для нужных полей, а дальше перехватывать mysql ошибки и их обрабытвать. например
Сам в последнее время использую второй вариант.
Какие еще возможны варианты?
У меня два варианта.
1) Перед добавлением/изменением делать запрос для проверки, в случаи проблемы генерировать ошибку
2) Создать в таблице уникальный индекс для нужных полей, а дальше перехватывать mysql ошибки и их обрабытвать. например
Код |
---|
public static function add(array $data) { try{ $result = parent::add($data); } catch (\Exception $e) { $msg = $e->getMessage(); if (strpos($msg, '(1062)') !== false) { $msg = 'Текст ошибки говорящий об не уникальности записи'; $result = new Entity\AddResult(); $result->addError(new Entity\EntityError($msg)); } } return $result; } |
Сам в последнее время использую второй вариант.
Какие еще возможны варианты?