Zend Framework - 表单和验证
-
简述
Zend Framework 提供了一个单独的组件,zend-form来加速表单创建和验证过程。它连接模型和视图层。它提供了一组表单元素,用于从预定义的模型创建完整的 html 表单,InputFilter 类用于根据表单验证模型,以及用于将数据从表单绑定到模型的选项,反之亦然。 -
安装表单组件
Zend 表单组件可以使用下面指定的 Composer 命令进行安装 −Zend 表单框架有三个子组件来管理表单。它们如下所述 --
Elements − 用于定义映射到模型中的属性的单个 html 输入控件。
-
Fieldset − 用于以嵌套方式对元素和其他Fieldset进行分组。
-
Form − 用于创建 html 表单,由元素和字段集组成。
Zend 表单通常在module/src/Form目录下创建。 -
-
例
现在让我们创建一个简单的表单,将book添加到数据库中。为此,我们应该遵循以下步骤 -步骤 1:创建book表单
在 “*myapp/module/Tutorial/src/Form“目录下创建”BookForm.php“。在文件中添加以下更改 −Form 类提供了一个 add方法来映射模型及其相应的表单详细信息。我们通过扩展 Form 类创建了 BookForm并为 Book 模型添加了表单详细信息。步骤2:更新book模型,Book.php
更新模型,Book与过滤器和验证,如下所述 -每个模型都应该实现 InputFilterAwareInterface。 InputFilterAwareInterface 提供了两种方法,setInputFilter() 和 getInputFilter()。getInputFilter 用于获取模型的验证细节。 Zend 框架提供了一组丰富的过滤器和验证器来验证表单。 book 模型中使用的一些过滤器和验证器如下 --
StripTags - 删除不需要的 HTML。
-
StringTrim - 删除不必要的空白。
-
StringLength 验证器 - 确保用户输入的字符数不超过指定限制。
步骤3:更新 BookTable 类
包含 saveBook 方法以将书籍添加到数据库中。BookTable.php步骤 4:更新“TutorialController”类
在教程控制器中添加一个新的操作添加操作 – myapp/module/Tutorial/src/Controller/TutorialController.phpaddAction方法执行以下过程 −-
获取请求对象。
-
检查请求的 http 方法是否为post方法。
-
如果请求的 http 方法不是post,则它只是呈现模板,add.phtml
-
如果请求的 http 方法未post,则它设置inputfilter,获取请求数据并将其设置为输入文件管理器。
-
使用 Form 类的 isValid() 方法检查表单是否有效。
-
如果表单无效,它将再次呈现模板 add.phtml
-
如果表单有效,它会将书籍保存到数据库中并重定向到主页。
步骤 5:添加 add.phtml 模板
创建一个模板 – 在 myapp/module/Tutorial/view/tutorial/tutorial/add.phtmladd.phtml在这里,我们使用 Form 实例呈现书籍表单,$form。步骤 6:运行应用程序
现在,我们可以运行应用程序 - http://localhost:8080/tutorial/add。表单页面“验证错误”页 -