首页 > 编程 > PHP > 正文

yii2的ActiveForm表单使用的方法介绍

2020-03-22 19:48:56
字体:
来源:转载
供稿:网友
本篇文章给大家带来的内容是关于yii2的ActiveForm表单使用的方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

因目前项目并非前后端分离模式,且用到PHP的yii2框架(所有html代码,js较多内嵌在.php文件内多少采用同步提交【喷墨中...】),遂对于前端面上需要用到的yii2小组件一些整理(因是前端若涉及到php写法错误或者风格问题,敬请指点)

使用场景尽量为表单

基础注册调用小组件

 ?php use yii/helpers/Html; use yii/widgets/ActiveForm; //首先注册activeForm小部件,并赋值给$form(php中的声明变量方法用$ 等价于js中的var let) //begin 标志小部件开始 ?php $form = ActiveForm::begin([ id = login-form , //声明小部件的id 即form的id //声明需要添加的属性 ,例如class , data-x等 options = [ class = form-horizontal ], ]) ?  //注册完小部件后可以在 activeForm小部件声明块中调用小部件的方法 ?= $form- field($model, password )- passwordInput() ? //::end标识小部件结束 ?php ActiveForm::end() ? 

1、首先就列出activeForm的一些基本方法:

自定义input框:input();

文本框:textInput();

密码框:passwordInput();

单选框:radio(),radioList();

复选框:checkbox(),checkboxList();

下拉框:dropDownList();

多选列表:listBox();

隐藏域:hiddenInput();

文本域:textarea([ rows =

文件上传:fileInput();

widget扩展 ?= $form- field($model, username )- widget(/yii/widgets/MaskedInput::className(), [ mask = 9999/99/99 ,]); ?

2、下面我就逐一描述下各个方法的基本调用以及如何自定义所需(上述各方法中input之前均是描述的是input标签的类型)

2.1 input 文本框/密码框以及各指定类型框

 ?php $form=ActiveForm::begin([ id = login , class = login ])?  !-- 简易用法 使用activeForm 的 fiedld方法 --  !-- 其中 该方法下有  textInout/passwordInput 等一些常用input类型方法 hint 输入前的提示内容 error 错误内容 //一般由后台生成 label 可以更改label内的内容 在hint,error,label设置class后将会重置了 这些方法内原来属于容器上的class若需要可以原样赋回去 !-- 这里的 $mode为跟字段有关的数据模型 , 第二个参数为关系模型中的字段不存在将报错, 第三个参数为模板内的一些内容的进行自定义 ?= $form- field($model, username ,[ options = [],//数组里面可以设置自需属性 // template 为字符串模板可自定义模板 , // 其中 {label} {input} {hint} {error} 存在是会调用对应封装好的html模板 当然你也可以不写这样就不会生成yii2内置小部件模板 template = {label} {input} {hint} {error} , // 以下三个分别可以设置label ,input ,hint,error的属性(都是选填项) // 其中如果后面有使用- input...,label(...)等将会将这些里面的配置合并值对应的xxxOptions 内 labelOptions = [ class = 需要在label上添加的类名  //....其他属性集 inputOptions = [], hintOptions = [], errorOptions = [], ])- textInput([ // 在options数组内可以设置任意属性 class = testClass , value = 测试  ])- hint( // 设置提示内容,当只有一个参数切为false(boolean)用于显示提示的标签 Please enter your name , // 设置任意属性 class = testHint  ])- label( // 设置label显示内容,当只有一个参数切为false(boolean)label标签将不会被渲染 Name , // 设置任意属性 class = testLabel  ])- error([ // 任意属性,当只有一个参数切为false(boolean)用于显示错误的标签 class = errors  ]) ?  !-- 可自定义类型input 这里只描述了input的参数 其余参数参考上个示例 --  ?= $form- field($model, username )- input( // input内只允许放置两个参数即[type ,options] email ,//该处为指定type= xxxx 的input类型 [ class = tests , value = 值 ]//可在内部定义任何属性 ) ?  ?php ActiveForm::end();? 

2.2 radio 单选框系列

 ?php $form=ActiveForm::begin([ id = login , class = login ])?  !--  老实说对这个radio方法相当迷惑 一个单选按钮选择而且一旦选择无法取消,无法一次柑橘属性放置多个值 在有radioList方法的前提下觉得相当鸡肋 第二个参数中false为是否开启label标签若没开启 labelOption 将无效 ,label设置的值直接显示在容器内 ?= $form- field($model, username )- radio([ // 隐藏域中的值 uncheck = test1 , // 定义lebal的内容 label = test , // label上的任意属性 labelOptions = [ gs = test  ],false)?  !--  单选框组  若要设置默认值,则在对应控制器中将指定字段设置为 需要选择的值 $model- username = 1; ?= $form- field($model, username )- radioList([ 0 = a , 1 = b , 2 = c  // tag声改变 >

2.3 checkbox多选框系列

 ?php $form=ActiveForm::begin([ id = login , class = login ])?  !--  checbox方法 该方法与radio 方法近似就不多说了 直接撸代码 具体可参考 radio ?= $form- field($model, username )- checkbox([ // 隐藏域中的值 uncheck = test1 , // 定义lebal的内容 label = test , // label上的任意属性 labelOptions = [ gs = test  ],true)?  !--  checkboxList方法 ?= $form- field($model, username )- checkboxList([ 1 = 篮球 , 2 = 足球 , 3 = 游戏 , 4 = 读书  // tag声改变 >

2.4 select下拉列表系列

 ?php $form=ActiveForm::begin([ id = login , class = login ])?  !--  dropDownList方法 下拉列表 ?= $form- field($model, username )- dropDownList([ // 二维数组直接回报上组标签 test = [ 1 = 篮球 , 2 = 足球 , 3 = 游戏 , 4 = 读书  // 设置下拉列表的默认请选择选项 prompt = [ text = 请选择 ,  options = [ value = none , class = prompt , label = Select ] encode = false, // 对select option的设置条件以及更改内容 options = [ // 设置禁止选择项 2 = [ disabled = true], //替换或者追加指定key的内容,实际上原内容还在只是假设了 label 属性 和显示了 label的属性值 4 = [ label = value 2 ], encodeSpaces = true // 除此yii2有规定属性之外还可自定义任意属性 且上述属性均不是必填 ])? 
?php ActiveForm::end();?

2.5 widget 小部件

 ?php $form=ActiveForm::begin([ id = login , class = login ])?  !--  用于强制输入正确内容的input部件 ?= $form- field($model, username ,[ template = h2 test /h2 {label} {input} {error}  ])- widget(/yii/widgets/MaskedInput::className(), [ // 指定input类型 // type = time , // 指定必须输入的类型 mask = 999-9999-9999 , options = [ class = form-control test ] ]); ?  !--  用于生成带图片验证的input小部件 ?= $form- field($model, verifyCode )- widget(Captcha::className(), [ captchaAction = login/captcha , options = [ class = two , id = two , placeholder = 请输入验证码 , template = {input}{image} , imageOptions = [ alt = images , ])?  --------------------- 最后一个并未实测 ------------------------------- !-- 自定义小部件 需在widget文件定义源文件 -- ?= $form- field($model, username )- widget( WidgetClassName , [ // configure additional widget properties here ]) ? ?php ActiveForm::end();? 

以上是这段时间使用的一篇小总结 如有用法错误敬请指点

以上就是yii2的ActiveForm表单使用的方法介绍的详细内容,PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表