首页 > 解决方案 > 我们如何将值分配给作为数组的模型对象键

问题描述

我正在使用 Yii2 和ActiveFrom. 我有添加多个名称、电子邮件等的用户形式。

例如:

echo $form->field($model, "name[$i]")->widget(kartik\select2\Select2::classname(), [
                                    'data' => $name_master,
                                    'options' => ['placeholder' => 'Select drop down', 'multiple' => false, 'class' => 'selectpicker form-control'],
                                ])->label(false);

我可以在添加时保存该值。但是当我尝试以编辑形式打开它并为模型键赋值时,我得到了错误。

为编辑模式的键分配值。

foreach ($namesDump as $val) {
    $objectKey = "name";
    $model->$objectKey[$index] = $val['name'];
}

这是给我的错误有人可以告诉我如何为数组形式的对象键赋值。

标签: phpyii2active-form

解决方案


您可能应该使用{}来指示属性名称的优先级 - 它因 PHP 版本而异:

$model->{$objectKey}[$index] = $val['name'];

推荐阅读