Yii2给出数组字段名称并保存到数据库

时间:2015-04-26 11:09:18

标签: php arrays yii2

我可以将每个要保存的项目分配给一个数组,然后再将数据库命名为。

例如说我有三个表单字段将保存到同一个数组中。 我可以像下面那样设置我的字段,或者如果下面的字段不正确,最好的方法是什么?

echo $form->field($model, 'arrayfields')->textinput([
    'name'=>'field1inarray[]',    
]);

echo $form->field($model, 'arrayfields')->textinput([
    'name'=>'field2inarray[]',    
]);

echo $form->field($model, 'arrayfields')->textinput([
    'name'=>'field3inarray[]',    
]);

另外,如何在控制器/模型中将数组保存到我的数据库?

1 个答案:

答案 0 :(得分:0)

我在视图中使用了以下内容

<?= $form->field($model, 'example[arrayfield1]')->textInput(['maxlength' => 255])->label('Array Field 1') ?>

<?= $form->field($model, 'example[arrayfield2]')->textInput(['maxlength' => 255])->label('Array Field 2') ?>

然后在我的控制器中保存到数据库中执行以下操作

    public function actionCreate()
{
    $model = new someModel();

    if ($model->load(Yii::$app->request->post())) {
        $array = $_POST['someModel']['example'];
        $model->stockists = json_encode($array); 
        $model->save();
        return $this->redirect(['view', 'id' => $model->id]);
    } else {
        return $this->render('create', [
            'model' => $model,
        ]);
    }
}

开放代码改进,需要添加一些验证来检查是否存在帖子值。

现在我需要设法在我的更新表单中填充值。