Php 在yii2中单击按钮时,如何更新数据库中的字段?
我想要的是,当我单击“右”按钮时,数据库表中“状态”字段中的内容将从null更新为“批准”。当我单击按钮“x”时,数据库表中“状态”字段中的内容将从null更新为“拒绝”Php 在yii2中单击按钮时,如何更新数据库中的字段?,php,phpmyadmin,yii2,yii2-advanced-app,Php,Phpmyadmin,Yii2,Yii2 Advanced App,我想要的是,当我单击“右”按钮时,数据库表中“状态”字段中的内容将从null更新为“批准”。当我单击按钮“x”时,数据库表中“状态”字段中的内容将从null更新为“拒绝” “按钮”=>[ “查看”=>函数($url$model){ 返回Html::a(“”,$url[ 'title'=>Yii::t('app','view'), ]); }, “批准”=>功能($url$model){ 返回Html::a(“”,$url[ 'title'=>Yii::t('app','approve'), ])
“按钮”=>[
“查看”=>函数($url$model){
返回Html::a(“”,$url[
'title'=>Yii::t('app','view'),
]);
},
“批准”=>功能($url$model){
返回Html::a(“”,$url[
'title'=>Yii::t('app','approve'),
]);
},
“拒绝”=>函数($url$model){
返回Html::a(“”,$url[
'title'=>Yii::t('app','reject'),
]);
}
],
“urlCreator”=>函数($action、$model、$key、$index){
如果($action=='view'){
$url='index.php?r=约会确认/view&id='。$model->appID;
返回$url;
}
如果($action=='approve'){
$url='index.php?r=约会确认/view&id='。$model->appID;
返回$url;
}
如果($action=='reject'){
$url='index.php?r=约会确认/view&id='。$model->appID;
返回$url;
}
}
这就是它的外观:创建到changeStatus操作的链接,将状态作为get参数传递:
if ($action === 'approve') {
return $url = Url::to(['appointment-confirmation/change-status', 'id' => $model->appID, 'status' => 'approve']);
}
if ($action === 'reject') {
return $url = Url::to(['appointment-confirmation/change-status', 'id' => $model->appID, 'status' => 'reject']);
}
创建操作更改状态(查找约会、更改状态、重定向到视图):
创建两个操作Approve and Reject或创建ChangeStatus操作pass status Approve and Reject。如果您从未尝试添加您的一部分来解决问题,请查看您以前的帖子。这看起来很习惯,您至少应该开始工作,然后在任何时候遇到问题时在此询问
if ($action === 'approve') {
return $url = Url::to(['appointment-confirmation/change-status', 'id' => $model->appID, 'status' => 'approve']);
}
if ($action === 'reject') {
return $url = Url::to(['appointment-confirmation/change-status', 'id' => $model->appID, 'status' => 'reject']);
}
public function actionChangeStatus($id, $status)
{
$appointment = Appointment::findOne($id);
if (!$appointment) {
throw new HttpException(404);
}
$appointment->status = $status;
if ($appointment->save()) {
$this->redirect(['view', $id => $appointment->id]);
} else {
throw new Exception('Error while saving appointment');
}
}