Yii2模型

时间:2016-10-05 10:41:15

标签: yii2

如果模型中的属性包含数组数据(比如日期),这些数据填充在具有此属性的多行的表单中,我如何将初始值分配给数组元素,以便它们在出现时最初显示在表单中。

在我的示例中,我的array-type属性包含日期,我希望表单中的每个新日期行在表单加载时具有不同的值。

<?= $form->field($model, 'datesToPay[]') ?>

我尝试使用Yii2的DefaultValueValidator过滤器为datesToPay数组元素指定初始值,但在表单加载时不显示该值。

['datesToPay', 'each', 'rule' => ['default', 'value' => date('Y-m-d')]]

1 个答案:

答案 0 :(得分:2)

你可以在渲染之前进行controllerAction

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

    if ($model->load(Yii::$app->request->post()) && $model->save()) {
        return $this->redirect(['view', 'id' => $model->id]);
    } else {

        $model->datesToPay[0] = 'YourValue';

        return $this->render('create', [
            'model' => $model,
        ]);
    }
}
相关问题