Php 在yii2中单击按钮时,如何更新数据库中的字段?

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'), ])

我想要的是,当我单击“右”按钮时,数据库表中“状态”字段中的内容将从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','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');
    }
}