遍历
编辑本页遍历
对象属性只有在可访问时才会被验证,无论是通过公共的还是具有公共访问方法(例如公共getter)。如果需要遍历对象以验证其数据,则可以使用此约束。
基本用法
在下面的示例中,创建两个类BookCollection
而且书
它们的性质都有约束条件。
- 属性
- YAML
- XML
- PHP
12 34 56 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
/ / src /实体/ BookCollection.php名称空间应用程序\实体;使用应用程序\实体\书;使用学说\常见的\集合\ArrayCollection;使用学说\常见的\集合\集合;使用学说\ORM\映射作为ORM;使用ob娱乐下载\组件\验证器\约束作为断言;# (ORM \实体)#(断言\导线)类BookCollection实现了\IteratorAggregate{/ * * *@var字符串* /# (ORM \列)#(断言\ NotBlank)受保护的$的名字=”;/ * * *@var收藏|书[]* /# (ORM \多(targetEntity:书::类))受保护的$书;//一些其他属性公共函数__construct(){$这->书=新ArrayCollection ();}/ /……名称Setter,书籍加法器和删除器//可以通过调用getter来验证名称公共函数getName():字符串{返回$这->名称;}/ * * *@return\Generator|Book[]指定作者的图书*/公共函数getBooksForAuthor(作者$作者):可迭代的{foreach($这->书作为$书) {如果($书->isAuthoredBy ($作者)) {收益率$书;}}}//既不是上面的方法,也不是任何其他特定的getter//可以用来验证所有嵌套的书籍;//需要遍历该对象以调用迭代器公共函数getIterator(){返回$这->书->getIterator ();}}
当对象实现时\可反驳的
(就像这里和它的孩子\ IteratorAggregate
),它的遍历策略将隐式地设置,对象将在不定义约束的情况下迭代。方法将其显式添加或禁用遍历是非常有用的遍历
选择。如果存在一个公共getter来返回内部的图书集合,比如getBooks():收集
,有效的约束可用于美元的书
财产。
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。