2一个控制器yii2中的删除功能

2一个控制器yii2中的删除功能,yii2,Yii2,我需要创建2删除功能(相册和照片)。不知何故,它在控制器中只有一个删除功能。如何在控制器中创建2删除功能?我还是OOP和Yii2的初学者 这些就是我试图解释的例子 GalleryController.php public function actionDelete($id) { $this->findModel($id)->delete(); return $this->redirect(['index']); } public function actio

我需要创建2删除功能(相册和照片)。不知何故,它在控制器中只有一个删除功能。如何在控制器中创建2删除功能?我还是OOP和Yii2的初学者

这些就是我试图解释的例子

GalleryController.php

public function actionDelete($id)
{
    $this->findModel($id)->delete();

    return $this->redirect(['index']);
}

public function actionDeletePhoto($id)
{
    $this->findModelPhoto($id)->delete();

    return $this->redirect(['index']);
}
试着这样做:

public function actionDelete($id)
{
    $this->findModel($id)->delete();
    $this->findModelPhoto($id)->delete();

    return $this->redirect(['index']);
}
或者还有另一种方法,有时删除可能会产生问题,所以在数据库中再添加一个名为“status”的列,并将其设置为1,这表示活动,0表示被动,您可以通过如下方式轻松更改其状态来创建actuion列:

    public function actionDelete($id)
{
    $model = Model::find()->where(['id'=>$id])->one();

    $model->status=0;
    $model->save(false);
    Yii::$app->session->setFlash('danger', "smth is deleted!");
    return $this->redirect(['index']);
}
试试这个:

从某种角度来看:

<?= Html::a('<i class="fa fa-trash"></i>',
    ['/controller/delete-photo'],
    [
        'class' => 'photo-dlt',
        'title' => Yii::t('app', 'Delete photo'),
        'data' => [
            'method' => 'post',
            'confirm' => Yii::t('app', 'Do you want to delete this photo?'),
            'params' => ['id' => $photo->id],
        ],
    ]
); ?>

你的问题是什么?两个删除操作或一个操作中的两个模型?一个控制器中的两个删除操作。为什么不?你可以使用你想要多少动作。
public function behaviors()
    {
        return [
            'verbs' => [
                'class' => VerbFilter::className(),
                'actions' => [
                    'delete' => ['POST'],
                    'delete-photo' => ['POST'] // add this line of code
                ],
            ],
        ];
    }

public function actionDeletePhoto()
    {
        $path = "path/to/photo";

        $id = Yii::$app->request->post('id');
        $model = $this->findModelPhoto($id);
        unlink($model->image, $path);
        $model->delete();

        return $this->redirect(['index']);        
    }