先在网上找了个checkboxList的描述:

public static function checkboxList($name, $selection = null, $items = [], $options = [])

下面我们一一说明其中的参数及使用

$name——设置checkbox的name
字符串,这个用来设置生成的每个checkbox的name值,因为是生成多个checkbox,所以$name的值要以[]结尾,如果没有的话在函数内部会自动加上[]

$selection——设置checkbox是否选中
字符串或者数组,这个用来设置哪些checkbox为选中状态,值为checkbox中的value;如果需要多个checkbox选中那么就用数组的形式来传递多个值,如['a','b','c']

$items——设置多个checkbox的数据源
数组,这个用来生成各个checkbox的数据源,其中键作为checkbox的value,值作为checkbox的label

$options
数组,这个比较复杂,里面的参数比较多,其中有几个固定的参数:

  • tag:字符串,设置生成的所有的checkbox的容器标签,默认为div
  • unselect:字符串,当checkbox都没有选择的时候的默认值。如果设置这个,会自动生成一个以name(不带[])为名称的hidden类型的input,这个input的值就为unselect
  • encode:布尔值,设置每个checkbox的label是否需要编码,默认为true
  • separator:字符串,生成的每个checkbox html代码之间的连接字符串,默认为 \n,也就是说默认生成的checkbox都是一行一个。
  • itemOptions:数组,生成每个checkbox的参数选项。这个在单独介绍checkbox函数的时候说明
  • item:回调函数,在循环生成每个checkbox表单的时候,会调用这个函数。如果设置了则使用返回值作为checkbox的表单,否则使用static::checkbox函数来生成每个checkbox表单,函数格式为:
    1. function ($index, $label, $name, $checked, $value)

在使用activeform时,一般格式是这样的

echo $form->field($model, 'size')->checkboxList(name,$model->allSize);

size相当于$selection

allSize相当于$items

关键在于size的格式,size需要存放键值的数组,例如$items是(0=>'X',1=>'XL',2=>'2XL');我们想选的是1和2,那$selection就需要是(0=>1,1=>2);

如果直接传(1=>'XL',2=>'2XL');会出错,可以使用array_keys()转换一下。

关于Yii2的checkboxList的初始选项设置问题的更多相关文章

  1. CSAPP读书随笔之一:为什么汇编器会将call指令中的引用的初始值设置为-4

    CSAPP,即<深入理解计算机系统:程序员视角>第三版,是一本好书,但读起来确需要具备相当的基本功.而且,有的表述(中译文)还不太直白. 比如,第463页提到,(对于32位系统)为什么汇编 ...

  2. 仿酷狗音乐播放器开发日志二十四 选项设置窗体的实现(附328行xml布局源码)

    转载请说明原出处,谢谢~~ 花了两天时间把仿酷狗的选项设置窗体做出来了,当然了只是做了外观.现在开学了,写代码的时间减少,所以整个仿酷狗的工程开发速度减慢了.今天把仿酷狗的选项设置窗体的布局代码分享出 ...

  3. loadrunner 脚本录制-录制选项设置HTML-based URL-based Script

    脚本录制-录制选项设置, HTML-based Script与URL-based Script by:授客 QQ:1033553122 Access:Vugen->Tool->Record ...

  4. lr录制选项设置代理

    解决录制时浏览器打不开录制时录不到脚本等浏览器兼容问题一.lr录制选项设置代理1.点击Options 2.点击Port Mapping→Newentrv 3.lr代理设置 ·Socket Servic ...

  5. Linux-1.1root初始密码设置,切换root用户

    Ubuntu安装好后,root密码需要自己设置 root初始密码设置 sudo passwd root 权限不够时,切换root su 回车后输入密码 exit 退出登录的账户

  6. wireshark抓包实战(五),首选项设置和基本的抓包设置

    一.首选项 首选项一般是修改软件底层的一些默认参数 选中编辑,点击首选项按钮 二.抓包选项设置 点击捕获,选中选项 1.捕获网卡设置 2.保存文件方式设置 很多情况下wireshark会保存很大的数据 ...

  7. /etc/default/grub 部分配置选项设置

    GRUB_HIDDEN_TIMEOUT=0 此配置将影响菜单显示.若设置此选项,将在此时间内隐藏菜单而显示引导画面. 菜单将会被隐藏,除非在此行开头加上一个 # 符号.(# GRUB_HIDDEN_T ...

  8. Access自动编号的初始值设置及重置编号

    项目上需要在Access数据库,发现自动编号的列无法设置初始值和步长,但是可以使用SQL语句来设置它. 方法如下: ALTER TABLE tableName ALTER COLUMN ID COUN ...

  9. 将 PAGE_VERIFY 数据库选项设置为 CHECKSUM

    此规则检查 PAGE_VERIFY 数据库选项是否已设置为 CHECKSUM.为 PAGE_VERIFY 数据库选项启用 CHECKSUM 后,SQL Server 数据库引擎会在向磁盘中写入页面时计 ...

随机推荐

  1. HDU 5527---Too Rich(贪心+搜索)

    题目链接 Problem Description You are a rich person, and you think your wallet is too heavy and full now. ...

  2. 一步一步学Vue (一)

    vue应该是前端主流框架中的集成大成者,它吸取了knockout,angular,react设置avalon的经验,支持各种模式写法,入门很简单,从本章开始,会记录学习vue中的点点滴滴,以笔记的形式 ...

  3. JavaScript中的设计模式:状态模式

    前几天写了一个贪吃蛇小游戏,正好用到了状态模式. 定义 当一个对象内部状态发生改变时候,会导致其行为的改变,这看起来像是改变了对象. 简单的例子 如果一个函数要更具某一个对象的状态来判断该对象应该执行 ...

  4. python全栈阶段测试(一)

    1.执行Python脚本的两种方式 如果想要永久保存代码,就要用文件的方式 如果想要调试代码,就要用交互式的方式 2.Pyhton单行注释和多行注释分别用什么? 单行注释:# 多行注释: '' &qu ...

  5. GitHub转华为软件开发云详细教程

    一.复制GitHub的代码库地址 首先,打开Github网页,找到要迁移的代码仓库地址,如下: 点击Clone or Download,出现以下界面 点击Copy toclipboard(复制到粘贴板 ...

  6. vue数据驱动作用域问题

    需求是这样的,如图 点击禁用后,变成启用,但是结果却不让人满意 我们先来看一下错误代码: //conponet控件里的内容 html内容: <div> <button @click. ...

  7. HDFS笔记——技术点汇总

    目录 · 概况 · 原理 · HDFS 架构 · 块 · NameNode · SecondaryNameNode · fsimage与edits合并 · DataNode · 数据读写 · 容错机制 ...

  8. Java IO(一):IO和File

    一.IO 大多数的应用程序都要与外部设备进行数据交换,最常见的外部设备包含磁盘和网络.IO就是指应用程序对这些设备的数据输入与输出,Java语言定义了许多类专门负责各种方式的输入.输出,这些类都被放在 ...

  9. [Tyvj 1728] 普通平衡树

    大名鼎鼎的板子题w 照例先贴题面 Describtion 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:1. 插入x数2. 删除x数(若有多个相同的数,因只删除一个)3. ...

  10. Pandas: 如何将一列中的文本拆分为多行? | Python

    Pandas: 如何将一列中的文本拆分为多行? 在数据处理过程中,经常会遇到以下类型的数据: 在同一列中,本该分别填入多行中的数据,被填在一行里了,然而在分析的时候,需要拆分成为多行. 在上图中,列名 ...