gpt4 book ai didi

php - 实体验证后如何获取错误消息

转载 作者:可可西里 更新时间:2023-11-01 13:46:46 24 4
gpt4 key购买 nike

在验证我的订阅实体后,我试图获得一条清晰的错误消息:

/**
* Subscribe
* @UniqueEntity("email")
* @ORM\Table(name="subscribe")
* @ORM\Entity(repositoryClass="AppBundle\Repository\SubscribeRepository")
*/
class Subscribe
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;

/**
* @var string
* @Assert\NotBlank()
* @Assert\Email()
* @ORM\Column(name="email", type="string", length=255, nullable=true, unique=true)
*/
private $email;

调用验证器服务并使用空白电子邮件对其进行测试后:

   $validator = $this->get('validator');
$errors = $validator->validate($email);
if (count($errors) >0) {
return new JsonResponse( (string)$errors);
}

我收到这条消息 Object(AppBundle\Entity\Subscribe).email: This value must not be empty. (代码 c1051bb4-d103-4f74-8988-acbcafc7fdc3)。知道如何清洁它吗?

最佳答案

试试这个:

           $validator = $this->get('validator');
$errors = $validator->validate($email);
if (count($errors) >0) {
$messages = [];
foreach ($errors as $violation) {
$messages[$violation->getPropertyPath()][] = $violation->getMessage();
}
return new JsonResponse($messages);
}

通过这种方式,我创建了一个错误数组,其中键是无效字段,您可以更改此逻辑并仅在错误前面添加字段名称并返回一个简单的字符串。

此代码适用于表单中的所有字段

关于php - 实体验证后如何获取错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44229769/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com