【问题标题】:How to have Yii2.0 CheckboxList items as checked as the form loads?如何在表单加载时检查 Yii2.0 CheckboxList 项目?
【发布时间】:2014-05-30 01:23:39
【问题描述】:

我正在尝试在 YII 2.0 框架中使用 Activeform 复选框列表小部件

在我的情况下,我有一个名为“list”的数组,其中包含将呈现为复选框列表的语言名称,现在我能够做到这一点,但我希望在表单加载时选中复选框.

$list = [0 => 'PHP', 1 => 'MySQL', 2 => 'Javascript'];
$list2 = [0,2];

使用以下行,我可以使用 HTML 帮助类实现我想要的:

<?= Html::checkboxList('CuisineId',$list2,$list); ?>

但我希望能够使用 Activeform Widget CheckboxList 来执行此操作,根据documentation,它可以通过以下方式使用:

静态复选框列表($items, $options = [])

所以在我的例子中,我已经想出了如何为 $items 传递参数,方法如下:

<?= $form->field($record, 'CuisineId')->checkboxlist($list);?> 

但现在我不知道如何传递允许选中复选框的参数。

【问题讨论】:

  • 将属性的值设置为'PHP'?
  • 不,在 Yii2 中,使用复选框列表,我能够生成一个带有 3 个复选框的表单,标签为“PHP”、“MySQL”和“Javascript”,我希望能够拥有“PHP”的复选框,已在表单加载时选中。
  • 值是否已经设置/来自模型?
  • 这对我有用:\yii\helpers\BaseHtml::checkboxList('CuisineId', $list2, $list);

标签: php yii2


【解决方案1】:

好的,我从yiiframework forum 自己那里得到了解决方案。

解决方案只是添加以下代码行并且它起作用了! :

$record->CuisineId = $list2;

【讨论】:

    【解决方案2】:

    解决
    database

    view

    控制器

    $model = $this->findModel($id);
        $model->INDEXES =ArrayHelper::getColumn($model->publicationIndexes, 'INDEXES_ID');
    
        if ($model->load(Yii::$app->request->post())) {$model->save();}
    

    查看(_form)

    <?= $form->field($model, 'INDEXES')->checkboxList(ArrayHelper::map(Indexes::find()->all(), 'ID', 'NAME')) ?>
    

    【讨论】:

      猜你喜欢
      • 2011-10-02
      • 1970-01-01
      • 2011-10-08
      • 1970-01-01
      • 2011-06-05
      • 2012-01-19
      • 1970-01-01
      • 2012-01-27
      • 1970-01-01
      相关资源
      最近更新 更多