1. 使用助手函数
<?php
// 使用助手函数重定向’
public function redirect1()
{
return redirect('http://www.thinkphp.cn');
}
2. 重定向传参
站内重定向的话,可以进行URL组装。也可以进行其他方式传参
重定向后执行的方法:
<?php
// 跳转后执行的方法
public function hello($name)
{
return '嘿嘿!' . $name;
}
2.1 完整地址组装URL
控制器:
<?php
// 完整地址组装 URL
public function redirect1()
{
return redirect('/test/res_info/hello/name/xs');
}
postman 测试:
2.2 使用params方法配合
控制器:
<?php
// 配合 params()
public function redirect2()
{
return redirect('/test/res_info/hello')->params(['name' => 'xs2']);
}
postman 测试:
2.3 助手函数传参
控制器:
<?php
// 直接使用助手函数传参
public function redirect3()
{
return redirect('/test/res_info/hello', ['name' => 'xs3']);
}
postman 测试:
2.4 with方法闪存session
控制器:
<?php
public function hello2()
{
return session('name');
}
// 使用 with() 闪存数据到 session中
public function redirect4()
{
return redirect('/test/res_info/hello2')->with(['name' => 'xs4']);
}
3. 记住请求地址
使用remember方法记住重定向之前的请求地址。
我们第一次访问index操作的时候会重定向到hello操作并记住当前请求地址
然后操作完成后到restore方法,restore方法则会自动重定向到之前记住的请求地址,完成一次重定向的回归,回到原点!(再次刷新页面又可以继续执行)
<?php
namespace app\index\controller;
class Index
{
public function index()
{
// 判断session完成标记是否存在
if (session('?complete')) {
// 删除session
session('complete', null);
return '重定向完成,回到原点!';
} else {
// 记住当前地址并重定向
return redirect('hello')
->with('name', 'thinkphp')
->remember();
}
}
public function hello()
{
$name = session('name');
return 'hello,' . $name . '! <br/><a href="/index/index/restore">点击回到来源地址</a>';
}
public function restore()
{
// 设置session标记完成
session('complete', true);
// 跳回之前的来源地址
return redirect()->restore();
}
}