创建表单

原文:http://www.yiiframework.com/doc-2.0/guide-input-forms.html

基于 ActiveRecord 的表单:ActiveForm

在 Yii 中使用表单的最主要的方法是采用 [[yii\widgets\ActiveForm]]。如果一个表单是基于一个模型的,则应首先使用此方法。另外,[[yii\helpers\Html]] 中还提供了诸多有用的方法,典型的方法有给任意表单添加按钮和帮助文本等。

一个展示在客户端的表单,大多数情况下都有一个对应的模型,这个模型在服务器端通常用于验证输入数据(关于验证的更多细节可参阅 验证输入 一节)。当创建一个基于模型的表单时,第一步要定义模型本身。模型可以是基于一个代表数据库中某些数据的 Active Record 类,也可以是一个普通的 Model 类(继承自 [[yii\base\Model]]),这个普通类可以捕捉任意输入,例如一个登录表单。

提示:如果表单域与数据库列有区别,或表单有唯一的格式或逻辑,则应更倾向于创建一个继承自 [[yii\\base\\Model]] 的类。

在下述例子中,我们向您展示一个通用模型如何用于登录表单:

在控制器中,我们将模型的一个实例传给视图,也就是使用 [[ActiveForm]] 小部件展示的表单所在的视图:

包含在 begin() 和 end() 之间

在以上代码中,ActiveForm::begin() 不仅创建了一个表单实例,还标记了表单的开始。所有放置在 ActiveForm::begin() 和 ActiveForm::end() 之间的内容都将包含在 HTML <form> 标签内。与任何小部件一样,您可以在 begin 方法中传递一个数组来指定某些选项,作为小部件的配置参数。在此例中,传递了一个额外的 CSS 类和 ID 值,并用在开放的 <form> 标签中。要了解所有可用选项,请参考 [[yii\widgets\ActiveForm]] 的 API 文档。

TBS

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据