HowTo: отображать пользовательское сообщение об ошибке, когда уникальный индекс не удается сохранить объект - PullRequest
0 голосов
/ 03 августа 2010

Я добавил индекс в таблицу, чтобы убедиться, что набор полей вместе образует составной уникальный ключ (правильный ли это подход? Или есть ли лучший вариант с Doctrine?)

После того, как вы сделаличто, когда я пытаюсь сохранить объект, и уникальное ограничение не выполняется, генерируется исключение SQL.Каков наилучший способ справиться с этим?и отобразить пользовательское сообщение об ошибке?

Моя домашняя работа

  1. Проверьте код исключения, поступивший из MySQL, и обработайте его.Но если таких ограничений будет несколько, мы не сможем точно определить одно

  2. Добавить postValidator на схему и написать там логику

Есть третий / лучший способ?

Спасибо

Ответы [ 2 ]

1 голос
/ 06 августа 2010
try {

    $model->save();

// maybe be more precise to catch only that special exception you described
} catch (Doctrine_Exception $e) { 

   $e->setMessage('my error message');
   throw $e;
}

в качестве альтернативы вы можете использовать встроенную проверку доктрины ...

0 голосов
/ 18 февраля 2011

Как было предложено ранее и подтверждено Zolex, лучший способ - написать пост-валидатор!

...