大佬教程收集整理的这篇文章主要介绍了完整性约束错误时,定义错误消息,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
当我尝试删除项目时出现完整性约束错误时,我试图显示一个不错的错误消息.
而不是出现严重错误500,我只想显示一条消息:
“您无法删除它,因为某些项目已@L_772_8@到它”
我已经搜索了一段时间,但是我总是找到“如何解决此错误”的解决方案.我不会解决它,我只想捕捉错误,就像带有消息参数的@UniqueEntity批注一样.
解决方法:
您可以实现一个监听PDOException的EventListener:
@H_675_14@// src/CM/PlatformBundlee/EventListener/PDOExceptionResponseListener.PHP namespace CM\PlatformBundle\EventListener; use Symfony\Component\httpFoundation\Response; use Doctrine\DBAL\Driver\PDOException; use Symfony\Component\httpKernel\Event\GetResponseForExceptionEvent; use Symfony\Component\httpFoundation\Session\SessionInterface; class PDOExceptionResponseListener { public function __construct(SessionInterface $session) { $this->session = $session; } /** * @param GetResponseForExceptionEvent $event */ public function onKernelResponse(GetResponseForExceptionEvent $event) { $request = $event->getrequest(); $exception = $event->getException(); $message = $exception->getmessage(); // Listen only on the expected exception if (!$exception instanceof PDOException) { return; } // You can make some checks on the message to return a different response depending on the MysqL error given. if (strpos($message, 'Integrity consTraint violation')) { // Add your user-friendly error message $this->session->getFlashBag()->add('error', 'PDO Exception :'.$messagE); } } }
声明为服务:
@H_675_14@// app/config/services.yml services: acme.kernel.listener.pdo_exception_response_listener: class: CM\PlatformBundle\EventListener\PDOExceptionResponseListener tags: - {name: kernel.event_listener, event: kernel.exception, method: onKernelResponsE} arguments: session: "@session"
使您的模板显示会话消息:
@H_675_14@// twig {% for flashmessage in app.session.flashbag.get('error') %} {{ flashmessage }} {% endfor %}
编辑
@H_675_14@try { $em->flush(); } catch (\Exception $E) { $errormessage = $e->getmessage(); // Add your message in the session $this->get(‘session’)->getFlashBag()->add('error', 'PDO Exception :'.$errormessagE); }
以上是大佬教程为你收集整理的完整性约束错误时,定义错误消息全部内容,希望文章能够帮你解决完整性约束错误时,定义错误消息所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。