我可以将每个要保存的项目分配给一个数组,然后再将数据库命名为。
例如说我有三个表单字段将保存到同一个数组中。 我可以像下面那样设置我的字段,或者如果下面的字段不正确,最好的方法是什么?
echo $form->field($model, 'arrayfields')->textinput([
'name'=>'field1inarray[]',
]);
echo $form->field($model, 'arrayfields')->textinput([
'name'=>'field2inarray[]',
]);
echo $form->field($model, 'arrayfields')->textinput([
'name'=>'field3inarray[]',
]);
另外,如何在控制器/模型中将数组保存到我的数据库?
答案 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,
]);
}
}
开放代码改进,需要添加一些验证来检查是否存在帖子值。
现在我需要设法在我的更新表单中填充值。