问题标签 [symfony-validator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
symfony - 使用 Symfony 通过 API 验证实体
我有一个带有简单字段的实体。不幸的是,我不能说 Symfony 方面的验证约束是什么。我必须在 API 路由上发布这些信息。如果它没有返回错误消息,我可以验证实体,如果没有,我必须向用户显示错误消息。
如果我想弄脏它,这很容易,但我想使用验证器。
当我执行此操作时$form->isValid
,我希望完成此 API 调用并将错误消息直接添加到表单中。
目前我有类似的东西
但正如我所说,我认为这很脏,我希望有更好的代码。
symfony4 - Fosrestbundle 表单错误 value is not valid entitytype
我正在使用 FosrestBundle,在我的表单中,我有一个关于多对多关系的实体类型。
我正在使用邮递员,并且尝试了许多不同的语法来验证表单,但每次都会收到此错误:“此值无效”。
}
如果我确实使用了普通表单(不是通过 API),它会验证没有任何错误!
有没有人有任何解决方案?
在我的模型中,我已经建立了可以拥有任意数量的类别的机构。
}
POSTMAN 通过正文中的 RAW 发送:
}
提前感谢您的帮助!:)
symfony - 成功返回 Symfony 的验证错误
我有一个带有@UniqueEntity
注释的 Symfony 实体。我使用它,所以我不会在我的数据库中获得相同的双记录,email
但我不想向用户返回电子邮件已经在数据库中(隐私原因)。
如何使用@UniqueEntity
但捕获错误并向用户返回成功消息?
控制器代码:
symfony - 如何验证 EntityType 字段?
我想确保用户从下拉列表中选择一个元素。
所以我 * @Assert\NotBlank()
在实体文件中使用了。
问题是它总是This value should not be blank.
在表单上返回错误!即使用户从列表中选择了一个值。
我也用过* @Assert\NotNull()
,还是一样的问题。
我可以Assert
通过在控制器上进行测试并使用闪存消息来删除验证并对其进行硬编码!但我想使用断言验证。
那么如何验证 EntityType 字段呢?
在表单类型中:
在观点上:
symfony - 2 个字段之间的 Symfony 验证
我有一个包含 3 个字段的更改密码表单:
currentPasword
newPassword
confirmNewPassword
我想验证newPassword
不等于当前的。
我可以验证以检查ChangePassword
表单使用的实体中是否为空,例如,使用:
但是我如何验证一个字段与另一个字段呢?我是否只需要对其进行硬编码,如果是这样,该代码最好放在哪里?
symfony - 由于不是字符串,Symfony 验证 DateTime 失败?
我有以下内容:
注意:如果我使用'startDate' => '2020-01-01'
,那么它可以工作。在 FormType 我有以下内容:
配置选项如下:
在事件实体中,我有一个这样的字段:
然而我一直收到这个错误,不知道为什么?
我有 Symfony 4.4.10。
forms - Symfony ValidatorComponent > FormComponent 中的 AnnotationMapping
我正在做一个使用一些 Symfony 组件的项目。我的问题是如何让表单组件对表单的验证使用 AnnotationMapping 来查找约束。
设置:
实体
构建表单
表单提交/验证
我试图使 NotBlank() 约束工作。但是我的表单无论如何都通过了验证。如果我使用新的验证器并使用它进行验证,它将向我显示正确的错误。但是 Form->isValid() 函数没有。也许它没有正确配置为使用 AnnotationMapping?非常感谢您提前提供提示或解决方案!
问题定位
表单处理请求/提交和验证按预期工作!
表格没有任何限制!! -> 从注释映射约束没有发生/工作。
我确实发现了一个类似的问题:为什么 Symfony 表单不使用约束注释验证我的 DTO?
php - 为什么 symfony 断言不适用于编辑页面上的 novalidation 属性?
在我的表单上,我使用的novalidate
是这样的属性:
禁用 HTML5 浏览器验证。因此出现 Symfony 断言错误。在 new.html.twig 页面上它工作得非常好!novalidate 属性禁用 html5 验证并出现断言错误。
但是,当我在 edit.html.twig 上使用 novalidate 属性并将该username
字段留空(我不在表单上填写)时,@Assert\NotBlank()
它不起作用。我得到这个错误
属性路径“用户名”中给出的“字符串”类型的预期参数,“空”。
为什么symfony assert 在新页面上工作,但在编辑页面上不起作用?顺便说一句,我没有使用任何验证组。
这是我的用户实体的代码(没有 getter 和 setter):
这是表单的代码:
new.html.twig 和 edit.html.twig 都有相同的代码:
控制器代码:
我的吸气剂和二传手:
php - 通过 Symfony Forms & Constraints 进行复杂的域验证
我有几个复杂的域对象。我使用 Symfony 表单来验证对它们的 REST 请求。假设,我有域Banner。而且我有用于通过 ID 使用BannerFormType创建/更新具体横幅的端点。横幅有限制:每日和总计。业务规则是“两个限制都是必需的,但每天应该小于或等于总数”。所以我们有一种情况,我们应该使用自定义类约束来验证两个相互链接的字段。
所以,我的表格看起来像:
我们该约束的代码如下所示:
一切正常,除了我们有一个非常耦合的验证器。如果我们想让它重用于其他形式,就会出现问题。例如,我想添加批量端点来更新横幅,因此它将使用BannerListFormType。
当然,我可以通过选项在约束中传递字段数据,但是对于嵌套表单来说很难做到。另外,我可以直接在表单事件中调用验证器,但它看起来很奇怪。
此外,使用我的方法,由于与表单结构的耦合约束,很难使用\Symfony\Component\Validator\Test\ConstraintValidatorTestCase对验证器进行单元测试。
你能给我什么建议?你们是怎么解决这样的问题的?
php - 如何使用 Api-Platform 保存空数据?
使用 Symfony 5.1 和 Api Platform,我无法有效地处理保存NULL
数据。
这个简单实体的示例:
示例 1(POST
请求):
我同意,这是好的回报 (ConstraintViolationList):
示例 2(POST
请求):
在数据库中的注册进展顺利。在数据库中,为了content
价值,我有""
. 但我想保存NULL
。
所以我知道 Api 平台不知道如何将空数据 ( ""
) 转换为NULL
数据,就像 Symfony 在提交空表单后那样。
所以我再次尝试示例 1,但使用NULL
数据,以确保Asserts
仍然有效。
它不起作用,我没有ConstraintViolationList
错误:
那么如何处理空数据,以便如果它是空的并且是强制性的,我有一个错误列表(ConstraintViolationList
),但如果它是可选的,那么数据注册为NULL
和否""
?
不得不根据它们是否是强制性的(有时是发送""
,有时是NULL
)来不同地管理数据的发送,这将是一种耻辱并且非常非常乏味。