Обновление системы входа / выхода SQL Yii2

У меня есть такие случаи, если кнопка "В" нажата, она создаст новую запись для посещаемости. И если кнопка "Вне" нажата, она обновит запись, созданную из новой записи ранее.
для подобных случаев это должно быть сделано на SQL с использованием запроса или на самом Yii?
что я пробовал до сих пор, я могу создать новую запись для кнопки "В". Но когда я нажал кнопку "Вне", запись не была обновлена, она создала новую запись с Null In Time.
вот дизайн стола

id   empid    date       in     out   status   desc
1     20    2016-11-01  08:00           1       In

и это дизайн формы
введите описание изображения здесь

РЕДАКТИРОВАТЬ:
Это мой контроллер для кнопки "В"

public function actionIn()
{
   // $session->open();
   // $

    $model = new AttDetail();
    $idAbsen = Att::find()->where(['empID'=>Yii::$app->user->id])->one();
    $db = Yii::$app->getDb();
    $command = $db->createCommand('
        SELECT group_shift.In FROM group_shift JOIN att on group_shift.Id = att.IdGs WHERE att.empId = 1
    ');
    $In = $command->queryOne();      

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

и это мой индекс

'toolbar'=> [
         ['content'=>   Html::a('<i class="glyphicon glyphicon-plus"></i> In', ['in'],['class'=>'btn btn-success']),

    ],
    ],
    'columns' => [
        ['class' => 'kartik\grid\SerialColumn'],
        'Id',
        'IdAtt',
        'Date',
        'In',
        'Out',

        ['class' => 'kartik\grid\ActionColumn',
        'template' =>  Html::a('<i class="glyphicon glyphicon-plus"></i> Out', ['out'],['class'=>'btn btn-success']),
          'dropdown'=>false,
          'dropdownOptions'=>['class'=>'pull-right'],

Я открыт для всех предложений о том, как это можно сделать. Спасибо

1 ответ

Ваш шаблон должен быть (при условии, что идентификатор вашей модели empid)

'template' =>  Html::a('<i class="glyphicon glyphicon-plus"></i> Out', 
    Url::to(['your-controller/out', 'empid=> $model->empid]),['class'=>'btn btn-success']),

но нет кода для действий

Вы должны добавить правильный (обновить) код для actionOut

что-то вроде этого для обновления (это всего лишь предложение)

public function actionOn($empid)
{
    $model = $this->findModel($empid);

    if ($model->load(Yii::$app->request->post()) && $model->save()) {
       ......
       // your redirec..
    } else {
        return $this->render('your_view', [
            ....
        ]);
    }
}
Другие вопросы по тегам