表达式
编辑该页面表达式
这个约束允许您使用一个表达式对于更复杂的、动态验证。看到基本用法了一个例子。看到回调不同的约束,给你类似的灵活性。
适用于 | 类或属性/方法 |
类 | 表达式 |
验证器 | ExpressionValidator |
基本用法
想象你有一个类博客
与类别
和isTechnicalPost
属性:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日24日25
/ / src /模型/ BlogPost.php名称空间应用程序\模型;使用ob娱乐下载\组件\验证器\约束作为断言;类博客{私人美元类别;私人美元isTechnicalPost;/ /……公共函数getCategory(){返回美元这- >类别;}公共函数setIsTechnicalPost(美元isTechnicalPost){美元这- >isTechnicalPost =美元isTechnicalPost;}/ /……}
验证对象,你有一些特殊的要求:
-
)如果
isTechnicalPost
是真的,那么类别
必须是php
-
或
ob娱乐下载
;
B)如果isTechnicalPost
是假的,那么类别
可以是任何东西。
做到这一点的方法之一是表达式约束:
- 注释
- 属性
- YAML
- XML
- PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
/ / src /模型/ BlogPost.php名称空间应用程序\模型;使用ob娱乐下载\组件\验证器\约束作为断言;/ * * *@Assert\表达式(*”this.getCategory () (php, symfony的)或! thob娱乐下载is.isTechnicalPost ()*消息=“如果这是一个技术文章,类别应该php或symfony !”ob娱乐下载* ) */< /span>类博客{/ /……}
的表达式选项的表达式必须返回true为了验证通过。了解更多关于表达式语言语法,看表达式语法。
更多的信息表达和哪些变量是可用的,看到的表达式选择下面的细节。
选项
表达式
类型:字符串
(默认的选项]
的表达式将被评估。如果表达式的求值结果为false值(使用= =
,而不是= = =
),验证将会失败。
了解更多关于表达式语言语法,看表达式语法。
内的表达,你可以访问两个变量:
这取决于你如何使用约束,你获得1或2变量表达式:
这
:正在验证的对象(例如博客的一个实例);价值
:财产的价值被认可(只有当约束直接用于属性);
消息
类型:字符串
默认的:这个值是无效的。
提供的默认消息当表达式的求值结果为false。
在这个信息:您可以使用以下参数
参数 | 描述 |
---|---|
{{value}} |
当前(无效)值 |
{{标签}} |
相应的表单字段标签 |
5.2
的{{标签}}
参数是在Symfony 5.2中引入的。ob娱乐下载
有效载荷
类型:混合
默认的:零
这个选项可以用来连接任意特定领域的数据约束。配置的有效载荷不使用验证器组件,但是它的处理是完全取决于你。
例如,您可能想要使用几个错误级别以不同的方式来呈现没有约束,在前端取决于错误的严重性。
值
类型:数组
默认的:[]
自定义变量的值在表达式中使用。值可以是任何类型(数字、布尔值、字符串、空等)。
- 注释
- 属性
- YAML
- XML
- PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
/ / src /模型/ Analysis.php名称空间应用程序\模型;使用ob娱乐下载\组件\验证器\约束作为断言;类分析{/ * * *@Assert\表达式(*“价值+ error_margin <阈值”,*值= {“error_margin”: 0.25,“阈值”:1.5}*)* /私人美元度规;/ /……}
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。