2015-05-23 22:55:49 5988次浏览 3条回答 0 悬赏 1 金钱

<?= $form->field($model, 'name[]')->dropDownList(['a' => 'Item A', 'b' => 'Item B', 'c' => 'Ite']);?>

比如我想选择第二项为默认选择的

  • 回答于 2015-05-24 08:33 举报

    通常有两种方法: 用JS,  控制器中对相应字段赋初值。

    4 条回复
    回复于 2015-05-24 08:42 回复

    十分感谢您的解答,方法2是什么意思

    回复于 2015-05-24 08:49 回复

    试一下在render你的view之前,控制器中对name赋值,例如$model->name = ‘b';,我忘记了你的语句中是应该用field($model, 'name[]')还是field($model, 'name'),暂时没空验证。

    搞定之后分享一下。

    回复于 2015-05-24 09:56 回复

    name 这个是 表单name值,跟控制器没关系

    回复于 2015-05-24 10:45 回复

    呵呵,可能我比较嘴笨,没说清楚。name既然是在field函数中使用,那么一定是$model对象的属性之一,这个成员可以是表的字段,也可以是model中手动加上去的属性。该属性可以是简单数据类型(如字符串,或者数值),也可以是多维数组。一般说来,只要不是DIY得太奇怪,都可以在render这个表单(view)前,将一些model对象的属性赋初值(无论是insert场景还是update场景,update的本来就有初值),然后表单中是可以正确显示的,dropDownList(对应select/option元素)也不例外。

    觉得很赞
  • 回答于 2015-05-24 10:46 举报

    <?= $form->field($model, 'name[]')->dropDownList(['a' => 'Item A', 'b' => 'Item B', 'c' => 'Ite']);?>这之前写上<?php $model->name = 'a'; ?>,话说field的第二个参数可以用name[]这样的不报错?

    1 条回复
    回复于 2015-05-24 14:23 回复

    我这样子写的确不好,但是没问题

  • 回答于 2015-05-24 12:40 举报

    这里的文章也许可以说明你的问题。

您需要登录后才可以回答。登录 | 立即注册
vking
主管

vking

注册时间:2015-04-21
最后登录:2019-05-26
在线时长:32小时43分
  • 粉丝3
  • 金钱194
  • 威望0
  • 积分514

热门问题