Неправильный редирект при удалении

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
crows
Сообщения: 289
Зарегистрирован: 2012.03.03, 10:37

Неправильный редирект при удалении

Сообщение crows »

Столкнулся с такой проблемой: после удаления сущности у меня редирект на index action срабатывает во всех браузерах (Chrome, FF, IE 11) без проблем. Но, у заказчика в FF и IE 11 после удаления сущности, идет редирект на action delete. И, из-за того что уже сущность удалена, он видит ошибку 404. То есть, action delete вместо редиректа на index action, редаректится сам на себя. Сущности уже нет, она удалена, возникает 404 ошибка.

Контроллер:

Код: Выделить всё

    public function actionDelete($id)
    {
        $this->findModel($id)->delete();
        Yii::$app->session->setFlash('success', "The cable has been deleted successfully.");

        return $this->redirect(Url::to(['/admin/cables/index']));
    }
Пробовал:

1) return $this->redirect(Url::to(['/admin/cables/index']));
2) return $this->redirect(Url::to(['index']));
3) return $this->redirect(['index']);
4) return $this->redirect(Yii::$app->request->referrer);
5) ставить Yii::$app->end после редиректа

Ничего не помогает...

Аватара пользователя
Dominus
Сообщения: 806
Зарегистрирован: 2013.03.14, 21:27
Откуда: Россия, Иваново
Контактная информация:

Re: Неправильный редирект при удалении

Сообщение Dominus »

А если так

Код: Выделить всё

return $this->redirect(['cables/index']);
или так

Код: Выделить всё

return Yii::$app->response->redirect(['/cables/index']);
Не спорь с дураком, иначе окружающие не правильно поймут кто из вас дурак!

Аватара пользователя
NeverDie
Сообщения: 69
Зарегистрирован: 2012.05.13, 04:05
Откуда: Минск
Контактная информация:

Re: Неправильный редирект при удалении

Сообщение NeverDie »

Код: Выделить всё

return $this->redirect(['index']);
Если нужен экшн в том же контроллере.

Код: Выделить всё

return $this->redirect(['/admin/cables/index']);
Полный путь до нужного экшена

Код: Выделить всё

return $this->redirect(['/admin/cables/index', 'id'=>$model->id]);
С параметрами.

Ответить