路由
修改routes/web.php,增加
Route::get('jump','Fore\ForeController@jump');
控制器
在app/Http/Controllers/Fore/目录下创建ForeController.php
<?php
namespace App\Http\Controllers\Fore;
use App\Http\Controllers\Controller;
use Session;
class ForeController extends Controller
{
public function jump(){
$message=Session::get('message')?Session::get('message'):'返回首页';
$url=Session::get('url')?Session::get('url'):'/';
$time=Session::get('time')?Session::get('time'):5;
return view('fores.jump',[
'url' => $url,
'message' => $message,
'time' => $time,
]);
}
}
调用跳转
//login
public function login(){
if(Auth::user()) return redirect('jump')->with(
[
'url' => 'http://www.deadnine.com',
'message' => '您已登录,即将为您返回首页',
'time' => 10,
]
);
return "没有登录...";
}
前端页面
<html>
<p>{{$message}},将在<font class="time" style="color:#f00;">{{$time}}</font>秒后自动跳转</p>
<script src="/js/jquery-3.3.1.min.js"></script>
<script type="text/javascript">
$(function(){
var url = "{{$url}}"
var timeRemain = parseInt($('.time').text());
var time = setInterval(function(){
timeRemain = timeRemain-1;
$('.time').text(timeRemain);
if(timeRemain==0){
clearInterval(time);
window.location.href=url;
}
},1000);
})
</script>
</html>
其他实现
如果中转页面使用不频繁,也可以考虑不用中转页面跳转,也可以通过简单的方法实现。
发送跳转请求:
return redirect('/')->with('message', 'Message sent!');
在view中接收:
@if(Session::has('message'))
<div class="alert alert-info"> {{Session::get('message')}}
</div>
@endif
OVER