dosamigos\fileupload\actions\FileDeleteAction::run PHP Method

run() public method

public run ( ) : array | Response
return array | yii\web\Response
    public function run()
    {
        $id = Yii::$app->request->get($this->idParamName);
        if (!$id) {
            throw new NotFoundHttpException(Yii::t('fileupload', 'Page not found'));
        }
        $model = call_user_func([$this->className, 'findOne'], $id);
        $response = ['success' => $model->delete()];
        if (Yii::$app->request->isPost) {
            $shortClassName = strpos($this->className, '\\') === false ? $this->className : substr($this->className, strrpos($this->className, '\\') + 1);
            if (Yii::$app->request->isAjax) {
                // handling AJAX'ed requests
                Yii::$app->response->format = Response::FORMAT_JSON;
                $response['success'] = $model->delete();
                if ($response['success']) {
                    $this->unlink($id);
                    $response['message'] = $shortClassName . ' ' . Yii::t('fileupload', 'successfully removed.');
                } else {
                    $response['message'] = Yii::t('fileupload', 'Unable to remove') . $shortClassName;
                    $response['errors'] = implode("\n", $this->getModelErrors($model));
                }
                return $response;
            } else {
                // handling not AJAX'ed requests
                if ($model->delete()) {
                    Yii::$app->session->addFlash('success', $shortClassName . ' ' . Yii::t('fileupload', 'successfully removed.'));
                } else {
                    Yii::$app->session->addFlash('error', Yii::t('fileupload', 'Unable to remove') . $shortClassName);
                }
            }
        }
        return $this->controller->redirect($this->redirectRoute);
    }