【问题标题】:Yii2: How to show checked values in CheckboxListYii2:如何在 CheckboxList 中显示选中的值
【发布时间】:2015-04-27 14:48:41
【问题描述】:

我想在 Yii 2.0 的复选框列表中显示选中的值。以下是我的代码:

主数组:

<?php
$featureArr = array(
    'Change Requester' => 'Change Requester',
    'Clone Request' => 'Clone Request',
    'Suspend Request' => 'Suspend Request',
    'In-Process Requests Open in Edit Mode' => 'In-Process Requests Open in Edit Mode',
    'Allow On-the-Fly Notifications' => 'Allow On-the-Fly Notifications',
    'Additional Comments Field' => 'Additional Comments Field',
    'Do Not Validate Draft Requests' => 'Do Not Validate Draft Requests',
    '(Web-Only) Allow File Attachments' => '(Web-Only) Allow File Attachments',
);

从表格中获取数据以显示选中的项目:

$formFeatureModel = FormFeatureForm::find()->where("form_id=" . $model->id)->all();

$checkedFeatureArr = array();
foreach ($formFeatureModel as $data) {
    $checkedFeatureArr[$data->feature] = $data->feature;
}
?>

复选框字段

<?= $form->field(new FormFeatureForm, 'feature')->checkboxList($featureArr, ['class' => 'featureCls']) ?>

我正在从数据库中获取$checkedFeatureArr 中的检查项目。现在我只想显示已检查的项目。那么,我应该在哪里传递$checkedFeatureArr 数组?陷入困境。

任何帮助将不胜感激。

【问题讨论】:

    标签: php yii yii2


    【解决方案1】:

    当与模型一起使用时,你应该用选定的值填充feature模型属性。

    $model->feature = $checkedFeatureArr;
    

    然后会自动检查。

    其他提示:

    • 最好避免在 SQL 中串联,将 -&gt;where("form_id=" . $model-&gt;id) 替换为 -&gt;where(['form_id' =&gt; $model-&gt;id])

    • 最好在渲染ActiveField之前创建ActiveForm

    【讨论】:

    • 谢谢.. 这很简单.. :) 并感谢您的建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    相关资源
    最近更新 更多