2015-08-12 17:03:09 2498次浏览 2条回答 1 悬赏 10 金钱
$tradeList = \common\models\Trade::find()->select('id,name')->all();
$trades = \yii\helpers\ArrayHelper::map($tradeList, 'id', 'name');

<?= $form->field($model, 'trade_ids')->checkboxList($trades) ?>

修改的时候 如果trade_ids是 ,29,30, 数据就显示不出来 如果是 ,29 就可以显示并选中 怎么搞定他

最佳答案

  • naivefang 发布于 2015-08-13 09:12 举报

    $model->trade_ids是否是逗号分隔字符串,如果是,请用explode(',',$trade_ids)将其转换为一个数组。关于checkboxList的详细用法见:http://www.yiichina.com/doc/guide/2.0/helper-html

    3 条回复
    回复于 2015-08-13 11:05 回复

    谢谢 显示可以了,但是复选框修改的时候 会在所选择的选项前面多提交一个空值,这个怎么解决啊

    回复于 2015-08-13 17:12 回复

    array_filter($trade_ids),把空的元素去掉

    回复于 2015-08-13 17:17 回复

    OK了,不过我提交修改的时候
    $model->trade_ids = implode(',',$_POST['Articles']['trade_ids']);
    var_dump($model->trade_ids); 这个打印出来是‘24,25’
    $model->save();
    这样是不可以的 您知道是什么吗原因吗???

  • 回答于 2015-08-12 17:23 举报

    你的trade_ids 用逗号分隔的? 这样当然不行...

    如果你的 $model 是 \common\models\Trade 的实例.
    $form->field($model, 'trade_ids') 换成 $form->field($model, 'id')

    不是的话就......

    1 条回复
    回复于 2015-08-12 17:37 回复

    trade_ids是字段的名称 改它没用

您需要登录后才可以回答。登录 | 立即注册
辰枫夜雨
助理

辰枫夜雨

注册时间:2015-08-11
最后登录:2017-06-23
在线时长:18小时59分
  • 粉丝10
  • 金钱0
  • 威望0
  • 积分180

热门问题