2014-09-25 15:38:01 9261次浏览 1条回答 3 悬赏 5 金钱

Yii2.0的。
ActiveField的dropDownList第二个参数options。
官方解释的其中一点:
options: array, the attributes for the select option tags. The array keys must be valid option values, and the array values are the extra attributes for the corresponding option tags.
我的理解是,是一个数组,然后数组的值是option标签的值,就是option标签的value属性的值,数组的值是对应于这个option标签的而外属性。
还给出例子:

[
    'value1' => ['disabled' => true],    //value2所在的option添加一个disabled属性,值是true,也就是这个option不可用
    'value2' => ['label' => 'value 2'],
];

那好根据我的理解,我现在需要select的第二个option是默认选中的,我的第二个option的value就是2,
那我传参:

[
    '2' => ['selected' => 'selected']
]

那么就应该没错吧?如果我理解没错的话。
直接报错!Yii没有正确处理!为什么?
是我理解错了吗?

补充于 2014-10-10 11:38

在官方github主页上面提问搞定,下拉列表默认选中不是在option里面决定的,而是$model->category的值决定的。

你只要先把$article['cid']的值赋给当前的$model->category,会自行决定那个默认被选中。

比如$article['cid']的值是2,赋给$model->category之后,会自动的默认选中option标签的value是2的选项。

所以我上面的代码改成:
`
<?php $model->category = $article['cid'] ?>
<?= $form->field($model, 'category')->dropDownList(

ArrayHelper::map($category, 'cid', 'name')

) ?> 结果就对了:
PHP
`

最佳答案

  • dyllen 发布于 2014-10-10 11:38 举报

    在官方github主页上面提问搞定,下拉列表默认选中不是在option里面决定的,而是$model->category的值决定的。

    你只要先把$article['cid']的值赋给当前的$model->category,会自行决定那个默认被选中。

    比如$article['cid']的值是2,赋给$model->category之后,会自动的默认选中option标签的value是2的选项。

    所以我上面的代码改成:
    `
    <?php $model->category = $article['cid'] ?>
    <?= $form->field($model, 'category')->dropDownList(

    ArrayHelper::map($category, 'cid', 'name')
    

    ) ?> 结果就对了:
    PHP
    `

    觉得很赞
  • 回答于 2014-09-25 15:44 举报

    请楼主以后用markdown格式书写,这次我帮楼主重新编辑了一下。

    1 条回复
    回复于 2014-09-25 21:16 回复

    不知道你们这编辑器是用markdown的,也没有提示!

您需要登录后才可以回答。登录 | 立即注册
dyllen
经理

dyllen

注册时间:2014-09-09
最后登录:2020-10-16
在线时长:48小时47分
  • 粉丝8
  • 金钱400
  • 威望80
  • 积分1680

热门问题