перенаправление браузера на предыдущую страницу

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
maxyer
Сообщения: 290
Зарегистрирован: 2012.01.10, 17:55
Откуда: отсюда

перенаправление браузера на предыдущую страницу

Сообщение maxyer »

Здравствуйте !
Подскажите пожалуйста, как после успешного завершения действия контроллера перенаправить браузер на предыдущую страницу ?
$this->redirect(Yii::app()->user->returnUrl) дает странные результаты.
Похоже, что перенаправляет на ту страницу, которая потребовала пользователя залогиниться.
Skiller
Сообщения: 627
Зарегистрирован: 2011.11.27, 00:21

Re: перенаправление браузера на предыдущую страницу

Сообщение Skiller »

$this->refresh()//на текущую без поста и всего другого или $this->redirect(Yii::app()->request->urlReferrer);
maxyer
Сообщения: 290
Зарегистрирован: 2012.01.10, 17:55
Откуда: отсюда

Re: перенаправление браузера на предыдущую страницу

Сообщение maxyer »

Гм, все было бы хорошо, если бы действие контроллера вызывалось только один раз.
А то ведь сначала делается рендеринг представления, которое есть форма ввода, а потом в этом же действии обработка ввода.
По-крайней мере, по такой схеме работает действие, сгенерированное с помощью Gii.

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

 public function actionRateStudent()
    {
        $attestat = new Attestats();

        if(isset($_POST['Attestats']))
        {
            $attestat->attributes = $_POST['Attestats'];
            if($attestat->save())
                            $this->redirect(Yii::app()->request->urlReferrer);
        }

        $this->render('rateStudent',array(
                        'attestat' => $attestat,
              ));
    }
Что посоветуете ?
Skiller
Сообщения: 627
Зарегистрирован: 2011.11.27, 00:21

Re: перенаправление браузера на предыдущую страницу

Сообщение Skiller »

if($attestat->save())
$this->refresh(); //если в этом же вью рендерете инфу, или $this->redirect(array('view','id'=>$AttestatId)
p.s. внимательно прочитайте гайд, там много примеров, поможет тоже
maxyer
Сообщения: 290
Зарегистрирован: 2012.01.10, 17:55
Откуда: отсюда

Re: перенаправление браузера на предыдущую страницу

Сообщение maxyer »

Дело в том, что данное действие может вызываться из разных мест, поэтому $this->redirect(array('view','id'=>$AttestatId) не подходит, не говоря уже о refresh(). Нужен именно возврат на ту страницу, с которой был вызов.
Пойду в очередной раз читать руководство, хотя, если честно, без особой надежды.
Аватара пользователя
because
Сообщения: 689
Зарегистрирован: 2010.09.30, 22:01

Re: перенаправление браузера на предыдущую страницу

Сообщение because »

пишите свой url в сессию да и все
RTFM !
Аватара пользователя
jilizart
Сообщения: 82
Зарегистрирован: 2010.04.22, 18:56
Контактная информация:

Re: перенаправление браузера на предыдущую страницу

Сообщение jilizart »

Обычно для ссылок, которые требуют редиректа на определенное место после процессинга результатов, добавляют GET параметр что то типа ReturnUrl, в друпале скажем добавляется параметр destination, и после сейва формы редиректит на даресс в destination.
wolandino
Сообщения: 103
Зарегистрирован: 2011.02.02, 20:03

Re: перенаправление браузера на предыдущую страницу

Сообщение wolandino »

Нужен именно возврат на ту страницу, с которой был вызов.
Пойдет?

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

// какой-то код в контроллере, например сохранение данных
$this->redirect($_SERVER['HTTP_REFERER']);
maxyer
Сообщения: 290
Зарегистрирован: 2012.01.10, 17:55
Откуда: отсюда

Re: перенаправление браузера на предыдущую страницу

Сообщение maxyer »

Нет ;(
Чем это отличается от $this->redirect(Yii::app()->request->urlReferrer); ?
Возможно, действительно придется сохранять адрес возврата в сессии, хотя мне эта идея совсем не нравится.
sam
Сообщения: 31
Зарегистрирован: 2017.12.14, 18:23

Re: перенаправление браузера на предыдущую страницу

Сообщение sam »

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

Yii::app()->request->redirect($_SERVER['HTTP_REFERER']);
Ответить