У меня есть ограничение на одну из моих таблиц, я хотел бы получить один из параметров, когда выбрасывается исключение Doctrine\DBAL\Exception\UniqueConstraintViolationException
для настройки сообщения об ошибке.
* @ORM\Table(name="tile",
* uniqueConstraints={
* @UniqueConstraint(name="unique_image_tileset",
* columns={"tileset_id", "image"})
* })
В моем контроллере яесть:
try {
$em = $this->getDoctrine()->getManager();
/** some logic **/
foreach ($files as $file) {
try {
/* @var $file \Symfony\Component\HttpFoundation\File\UploadedFile */
$tile = new Tile();
$tile->setImageFile($file);
$tileset->addTile($tile);
$tiles[] = $tile;
} catch (\Exception $ex) {
$errors['warning'][] = $ex->getMessage();
}
}
/** some more logic **/
$em->persist($tileset);
$em->flush();
/** some more logic **/
} catch (UniqueConstraintViolationException $ex) {
$errors['warning'][] = $this->_translator->trans('The image name %imagename% is already used for this tileset',array(),'exceptions');
} catch (\Exception $ex) {
$errors['warning'][] = $ex->getMessage();
}
Существует функция formatParameters
на Doctrine\DBAL\DBALException
, но она является закрытой.Есть ли другой способ?