<?= $form->field($model, 'name[]')->dropDownList(['a' => 'Item A', 'b' => 'Item B', 'c' => 'Ite']);?>
比如我想选择第二项为默认选择的
通常有两种方法: 用JS, 控制器中对相应字段赋初值。
十分感谢您的解答,方法2是什么意思
@vking 试一下在render你的view之前,控制器中对name赋值,例如$model->name = ‘b';,我忘记了你的语句中是应该用field($model, 'name[]')还是field($model, 'name'),暂时没空验证。
$model->name = ‘b';
field($model, 'name[]')
field($model, 'name')
搞定之后分享一下。
@性感的农民 name 这个是 表单name值,跟控制器没关系
@vking 呵呵,可能我比较嘴笨,没说清楚。name既然是在field函数中使用,那么一定是$model对象的属性之一,这个成员可以是表的字段,也可以是model中手动加上去的属性。该属性可以是简单数据类型(如字符串,或者数值),也可以是多维数组。一般说来,只要不是DIY得太奇怪,都可以在render这个表单(view)前,将一些model对象的属性赋初值(无论是insert场景还是update场景,update的本来就有初值),然后表单中是可以正确显示的,dropDownList(对应select/option元素)也不例外。
在<?= $form->field($model, 'name[]')->dropDownList(['a' => 'Item A', 'b' => 'Item B', 'c' => 'Ite']);?>这之前写上<?php $model->name = 'a'; ?>,话说field的第二个参数可以用name[]这样的不报错?
<?php $model->name = 'a'; ?>
name[]
我这样子写的确不好,但是没问题
@vking 这里的文章也许可以说明你的问题。