1. 使用助手函数
<?php// 使用助手函数重定向’public function redirect1(){return redirect('http://www.thinkphp.cn');}
2. 重定向传参
站内重定向的话,可以进行URL组装。也可以进行其他方式传参
重定向后执行的方法:
<?php// 跳转后执行的方法public function hello($name){return '嘿嘿!' . $name;}
2.1 完整地址组装URL
控制器:
<?php// 完整地址组装 URLpublic 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
控制器:
<?phppublic 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方法则会自动重定向到之前记住的请求地址,完成一次重定向的回归,回到原点!(再次刷新页面又可以继续执行)
<?phpnamespace app\index\controller;class Index{public function index(){// 判断session完成标记是否存在if (session('?complete')) {// 删除sessionsession('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();}}
