diff --git a/docs/guide-zh-CN/input-forms.md b/docs/guide-zh-CN/input-forms.md new file mode 100644 index 0000000..64ce58b --- /dev/null +++ b/docs/guide-zh-CN/input-forms.md @@ -0,0 +1,140 @@ +创建表单 +======== + +在 Yii 中使用表单的主要方式是通过 [[yii\widgets\ActiveForm]]。如果是基于模型的表单应首选这种方式。此外,在 [[yii\helpers\Html]] +中也有一些实用的方法用于添加按钮和帮助文本。 + +在客户端上显示的表单,大多数情况下有一个相应的[模型](structure-models.md),用来验证其输入的服务器数据 +(可在 [输入验证](input-validation.md) 一节获取关于验证的细节)。 +当创建基于模型的表单时,第一步是定义模型本身。该模式可以是一个基于[活动记录](db-active-record.md)的类,表示数据库中的数据, +也可以是一个基于通用模型的类(继承自 [[yii\base\Model]] ),来获取任意的输入数据,如登录表单。 +在下面的例子中,我们展示了一个用来做登录表单的通用模型: + +```php + 'login-form', + 'options' => ['class' => 'form-horizontal'], +]) ?> + field($model, 'username') ?> + field($model, 'password')->passwordInput() ?> + +
+
+ 'btn btn-primary']) ?> +
+
+ +``` + +在上面的代码中,[[yii\widgets\ActiveForm::begin()|ActiveForm::begin()]] 不仅创建了一个表单实例,同时也标志着表单的开始。 +放在 [[yii\widgets\ActiveForm::begin()|ActiveForm::begin()]] 与 [[yii\widgets\ActiveForm::end()|ActiveForm::end()]] +之间的所有内容都被包裹在 HTML 的 `
` 标签中。 +与任何小部件一样,你可以指定一些选项,通过传递数组到 `begin` 方法中来配置该小部件。在这种情况下, +一个额外的 CSS 类和 ID 会在 `` 标签中使用。要查看所有可用的选项,请参阅 API 文档的 [[yii\widgets\ActiveForm]]。 + +为了在表单中创建表单元素与元素的标签,以及任何适用的 JavaScript 验证,[[yii\widgets\ActiveForm::field()|ActiveForm::field()]] +方法在调用时,会返回一个 [[yii\widgets\ActiveField]] 的实例。 +直接输出该方法时,结果是一个普通的(文本)输入。要自定义输出,可以附加上 [[yii\widgets\ActiveField|ActiveField]] 的其它方法来一起调用: + +```php +// 一个密码输入框 +field($model, 'password')->passwordInput() ?> +// 增加一个提示标签 +field($model, 'username')->textInput()->hint('Please enter your name')->label('Name') ?> +// 创建一个 HTML5 邮箱输入框 +field($model, 'email')->input('email') ?> +``` + +它会通过在 [[yii\widgets\ActiveField::$template|template]] 中定义的表单字段来创建 `