我正在将结算页面添加到我使用Symfony构建的网络应用程序中。这些是标准的信用卡付款和结算历史记录类型页面。
我正在收集用户订单数据,帐单邮寄地址等,使用Symfony表单并使用他们的PHP SDK将数据发送到Braintree API。
如果Braintree服务器拒绝某些数据,因为格式无效,那么Braintree SDK会抛出PHP异常。
如何在Symfony表单中捕获这些异常并触发表单错误?
仅供参考,可以查看一长串Braintree错误代码here。有很多,所以我真的不想在我的表单实体上使用@Assert/Length(max = 9)
或@Assert\Regex("/^\w+/")
等手动复制这些内容。我宁愿将异常直接映射到表单字段,并使用Braintree API返回的错误字符串作为表单验证消息。
有没有人知道实现这个或更好解决方案的简单方法?
非常感谢:)
更新 关于Braintree SDK抛出异常,我错了。我有一些抛出异常的遗留代码。 Braintree实际上返回结果对象中的错误。这是docs。我可以循环使用这些并使用this向表单添加错误,并在表单顶部显示这些错误,如评论中的Pipe所示,或将它们映射到正确的字段。