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