В чем различие $this->goBack() и Yii::$app->request->referrer ?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
girmate
Сообщения: 1534
Зарегистрирован: 2015.10.27, 12:52

В чем различие $this->goBack() и Yii::$app->request->referrer ?

Сообщение girmate »

В одном и том же контроллере пришлось заменить вызов

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

return $this->goBack()
на конструкцию

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

if (\Yii::$app->request->referrer) {
        return $this->redirect(Yii::$app->request->referrer);
    } else {
        return $this->goHome();
}
Собственно вопрос: почему первый вариант с goBack() возвращает на главную страницу из того же action вместо редиректа на ту страницу из которой пришел вызов, а второй вариант делает все как и ожидалось?
Последний раз редактировалось girmate 2016.03.11, 18:42, всего редактировалось 1 раз.
Осторожно! Вы общаетесь с новичком ;)
Аватара пользователя
tugrik
Сообщения: 26
Зарегистрирован: 2016.03.11, 17:07

Re: В чем различие $this->goBack() и Yii::$app->request->referrer ?

Сообщение tugrik »

Вы должны использовать setReturnUrl() если ReturnUrl не определился (как в вашем случае), перед использованием goBack() , иначе будет вызван goHome().
Аватара пользователя
girmate
Сообщения: 1534
Зарегистрирован: 2015.10.27, 12:52

Re: В чем различие $this->goBack() и Yii::$app->request->referrer ?

Сообщение girmate »

Если чесно, то понятнее не стало (( :oops: Не обижайтесь ((
Осторожно! Вы общаетесь с новичком ;)
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: В чем различие $this->goBack() и Yii::$app->request->referrer ?

Сообщение zelenin »

girmate писал(а):
Если чесно, то понятнее не стало (( :oops: Не обижайтесь ((
это вы не обижайтесь, что переоценил вас.
недоумеваю почему вы сравниваете две разные функции. поэтому дал ссылку на оригинальный код, в котором видно что делает goBack.
Аватара пользователя
girmate
Сообщения: 1534
Зарегистрирован: 2015.10.27, 12:52

Re: В чем различие $this->goBack() и Yii::$app->request->referrer ?

Сообщение girmate »

zelenin писал(а):
girmate писал(а):
Если чесно, то понятнее не стало (( :oops: Не обижайтесь ((
это вы не обижайтесь, что переоценил вас.
недоумеваю почему вы сравниваете две разные функции. поэтому дал ссылку на оригинальный код, в котором видно что делает goBack.
Это Вам видно)), а мне незаметно. За комплимент спасибо))))
Осторожно! Вы общаетесь с новичком ;)
Аватара пользователя
girmate
Сообщения: 1534
Зарегистрирован: 2015.10.27, 12:52

Re: В чем различие $this->goBack() и Yii::$app->request->referrer ?

Сообщение girmate »

Я хочу просто понять, что же делает (не делает) функция goBack() и почему она работает как goHome() (я так понимаю, в данном конкретном случае). Просто памяти в голове не хватает осилить ту цепочку в коде.
Осторожно! Вы общаетесь с новичком ;)
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: В чем различие $this->goBack() и Yii::$app->request->referrer ?

Сообщение zelenin »

girmate писал(а):Я хочу просто понять, что же делает (не делает) функция goBack() и почему она работает как goHome() (я так понимаю, в данном конкретном случае).
так код посмотрите. я же кинул ссылку. если что-то не понятно, задавайте вопрос. по коду.
Аватара пользователя
girmate
Сообщения: 1534
Зарегистрирован: 2015.10.27, 12:52

Re: В чем различие $this->goBack() и Yii::$app->request->referrer ?

Сообщение girmate »

zelenin писал(а):
girmate писал(а):Я хочу просто понять, что же делает (не делает) функция goBack() и почему она работает как goHome() (я так понимаю, в данном конкретном случае).
так код посмотрите. я же кинул ссылку. если что-то не понятно, задавайте вопрос. по коду.
Конечно посмотрел, ума не хватает понять - там такая длинная цепочка, что ниасилил. (Хотя слова в ней знакомые)) ). Попозже посмотрю повнимательнее и разберусь что там по чем. И задам вопрос, если не разберусь, конечно. Спасибо за помощь.
Осторожно! Вы общаетесь с новичком ;)
Аватара пользователя
girmate
Сообщения: 1534
Зарегистрирован: 2015.10.27, 12:52

Re: В чем различие $this->goBack() и Yii::$app->request->referrer ?

Сообщение girmate »

И как же я Вам завидую, блин. Мне бы Ваши знания...
Осторожно! Вы общаетесь с новичком ;)
Ответить