@givemoneybiatch
Немного веб, немного гейм

Как сделать редирект с задержкой в Laravel?

Тривиальная задача, но не могу ее решить уже часа два. Есть простая страница с ссылкой.
Задача: при нажатии на ссылку открывается некая страница, назовем ее 'test' , с которой происходит редирект на необходимую страницу назовем ее 'final'. На странице 'test' мы выводим простую строку "Вы перенаправляетесь ..." и с задержкой в 2-3 секунды перенаправляем на 'final'.
Как я вижу :

routes.php
Route::get( '/test'  ,'Production\Website@TestPage');

Website.php
public function TestPage()
    {
      view('production.pages.home.test');  
      sleep(3); 
      Redirect::to('https://final.com', 301); 
    }


В результате получаю пустое окно. Конечно нужно добавить return , но тогда будет выполняться что-то одно - или отображение страницы или редирект.
Помогите пожалуйста.
  • Вопрос задан
  • 622 просмотра
Пригласить эксперта
Ответы на вопрос 4
Sanasol
@Sanasol Куратор тега Laravel
нельзя просто так взять и загуглить ошибку
Либо делаете редирект 301, либо показываете страницу на которй meta/js редирект, и это уже не будет 301 редирект.
Третьего не дано.


view('production.pages.home.test');  
sleep(3); 
Redirect::to('https://final.com', 301);


26326068d049fcc7301199f97240.png
Ответ написан
Комментировать
@r_zaycev
Выполняйте редирект уже в браузере, с помощью JS или meta http-equiv="refresh". Там уже и задавайте задержку.
Ответ написан
DJZT
@DJZT
Laravel - code for you
Это делается с помощью js а самой странице. а использование sleep() останавливает выполнение скрипта php на некоторое время и в итоге вы даже не получите страницу, потому-что сделали редирект на уровне header http заголовков с помощью php.
Ответ написан
Комментировать
nimishprabhu.com/header-php-refresh-redirect-locat...

https://laravel.com/docs/5.1/responses#attaching-h...

Отвечаю с телефона, поэтому готовое решение не пишу, могу ошибиться в коде.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы