描述表单input部分的元素可能是表单对象最重要的部分。它们作为关联数组存储在Solar_Form::$elements属性中。
同样的,$elements
属性中的元素是一个描述自身的数组。描述数组的键说明如下:
name
-
元素的名称,用于表单中元素的
name
属性。 type
-
元素类型,与视图辅助类相对应。例如,
select
使用formSelect
辅助类,产生<select />
标签。newForm()
方法能够根据记录属性的种类为元素选择正确的类型。char和varchar字段对应input
类型,使用ValidateInList
或ValidateInKeys
过滤器的字段对应select
类型,布尔类型字段对应checkbox
类型,等等。 label
-
放置在
<label>
标签中的简短的文本,该标签和元素关联。 descr
-
一段描述元素的叙述性文本;这个属性可用于工具提示、帮助文本等类似方面。
value
-
元素当前的值。
require
-
布尔类型,指示元素是否必须非空。
newForm()
方法能够识别NOT NULL
类型的字段,它会默认设置此类元素为非空。 options
-
一个键-值对数组,数组键是选项值,数组值是选项的标记文本。这常用于
select
和radio
类型元素,因此他们知道该显示哪个选项。 attribs
-
一个键-值对数组,数组键是一个XHTML属性名,数组值是相应属性的值。
invalid
-
一个消息数组,用于表示元素值非法的原因。
每个元素的名称都对应于$_POST
数组中的键(如果你使用GET
方法,那么这里就是$_GET
数组--通常来说不推荐使用GET
方法,但有时候又必须使用它)。元素的名称模仿数组格式,其中数组名匹配某个模型名,键名匹配模型记录的属性。但是,实际上元素的名称仍然是一个字符串;它们仅仅看上去像数组。
例如,给定Acme_Model_Blogs_Record
,newForm()
方法返回的表单对象中的元素的名称如下:
<?php
$form->elements['blog[title]'] = array(...); // $_POST['blog']['title']
$form->elements['blog[body]'] = array(...); // $_POST['blog']['body']
$form->elements['blog[status]'] = array(...); // $_POST['blog']['status']
Note | |
---|---|
|
这些名称也用于表单中元素的名称:
<input name="blog[title]" ... /> <textarea name="blog[body]">...</textarea> <select name="blog[status]">...</select>