我有这种情况如果单击按钮“In”,它将创建一个新的出勤记录。如果单击按钮“Out”,它将更新之前从新记录创建的记录。
对于这样的情况,它应该在SQL上使用查询,或在Yii本身上完成?
我到目前为止尝试过的,我可以为“In”Button创建新的记录。但是当我点击“Out”按钮时,记录没有更新,它创建了一个Null In Time的新记录。
这是表
的设计
id empid date in out status desc
1 20 2016-11-01 08:00 1 In
编辑:
这是我的“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'],
我愿意接受有关如何做到这一点的所有建议。谢谢你
答案 0 :(得分:0)
您的模板应该是(假设您的模型ID为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', [
....
]);
}
}