Yii2 saving form with multiple models

删除回忆录丶 提交于 2019-12-12 11:35:00

问题


Hi I am very close to finish a project but got stuck saving a from with multiple models.

I have a grid that calls a controllers action that calls a form.

    public function actionToday() {
    $ID = $_GET["0"];
    $modelCustomers = Customers::find()->where(['ID' => $ID])->one();;
    $today = date("Y-m-d");
    $beforeToday = 'DropinDate>'.$today;
    $modelAttendance =  Attendance::find()->where(['CustomersID' => $ID])->andwhere(['DropinDate' => $today])->one();
    return $this->render('//attendance/_form-today-attendance', ['modelCustomers' => $modelCustomers, 'model' => $modelAttendance]);
}  

In the form i have 3 main fields to update or in case is not record i need to create a new record.

This is the _form-today-attendance

<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
use yii\helpers\ArrayHelper;
?>
<?php $form = ActiveForm::begin(); ?>
<h3>Your Personal Details</h3>
<?= $form->field($modelCustomers, 'Name')->textInput(['readonly' => true]) ?>
<?= $form->field($model, 'DropinDate')->textInput(['readonly' => true]) ?>

<div class="attendance-form">
    <?= $form->field($model, 'Dropin')->checkbox() ?>
    <?= $form->field($model, 'Doctor')->checkbox() ?>
    <?= $form->field($model, 'Lawyer')->checkbox() ?>
    <?= $form->field($model, 'Observation')->textInput(['maxlength' => 250]) ?>
    <div class="form-group">
        <?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
    </div>
</div>
<?php ActiveForm::end(); ?>

When I debug i cant get anything happend in the Attendence model or the Customers model.

Any ideas?

Thanks a lot,

Eduardo


回答1:


Try this function and check what you get.

public function actionToday()
{
    $ID = $_GET["0"];
    $modelCustomers = Customers::find()
        ->where(['ID' => $ID])
        ->one();;
    $today = date("Y-m-d");
    $beforeToday = 'DropinDate>' . $today;
    $modelAttendance = Attendance::find()
        ->where(['CustomersID' => $ID])
        ->andwhere(['DropinDate' => $today])
        ->one();
    if (Yii::$app->request->post()) {
        $data = Yii::$app->request->post();
        //do something with $data
    }
    return $this->render('//attendance/_form-today-attendance', [
        'modelCustomers' => $modelCustomers,
        'model' => $modelAttendance]);
}

There will be something in array, you can assign it to model instances.



来源:https://stackoverflow.com/questions/28704045/yii2-saving-form-with-multiple-models

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!