2015-02-24 2 views
4

Привет Я очень близок к завершению проекта, но застрял в экономии с нескольких моделей.Yii2 сберегающая форма с несколькими моделями

У меня есть сетка, которая вызывает действие контроллеров, которое вызывает форму.

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]); 
} 

В форме у меня есть 3 основных поля для обновления или в случае, если запись не нужна, мне нужно создать новую запись.

Это _form-сегодня-посещаемость

<?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(); ?>

Когда я отлаживать я не могу получить что-нибудь случилось в модели Attendence или модели Customers.

Любые идеи?

Спасибо большое,

Эдуардо

ответ

3

Попробуйте эту функцию и проверить, что вы получите.

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]); 
} 

В массиве будет что-то, вы можете назначить его экземплярам модели.

+0

Это заставляет меня понять, что возвращалась к той же функции, и я могу получить там логику. Спасибо, мало-помалу я понимаю логику yii –

+0

приветствую, а также ответ – ankitr

+0

Nice one @ankitraturi. –

Смежные вопросы