Частенько требуется проверять на уникальность 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;
}
|
Сам в последнее время использую второй вариант.
Какие еще возможны варианты?