ThinkPHP5 响应输出
来源:互联网 发布:房地产 知乎 编辑:程序博客网 时间:2024/05/21 09:50
重定向
可以使用redirect助手函数进行重定向
<?php
namespace app\index\controller;
class Index
{
public function hello()
{
return redirect('http://contoso.org');
}
}
redirect函数和控制器的redirect方法的参数顺序有所区别
重定向传参
如果是站内重定向的话,可以支持URL组装,有两种方式组装URL,第一种是直接使用完整地址(/打头)
redirect('/index/index/hello/name/thinkphp');
这种方式会保持原来地址不做任何转换,第二种方式是使用params方法配合,例如:
redirect('hello')->params(['name'=>'thinkphp']);
最终重定向的URL地址和前面的一样的,系统内部会自动判断并调
用url(用于快速生成URL地址的助手函数)方法进行地址生成,相当于
redirect(url('hello',['name'=>'thinkphp']));
还可以支持使用with方法进行重定向隐式传值。
<?php
namespace app\index\controller;
class Index
{
public function index()
{
return redirect('hello')->with('name', 'thinkphp');
}
public function hello()
{
$name = session('name');
return 'hello,' . $name . '!';
}
}
从示例可以看到重定向隐式传值使用的是Session方式隐式传值,
并且仅在下一次请求有效,再次访问重定向地址的时候无效。
我们访问请求
http://contoso.org
会输出:
但当我们第二次请求
http://contoso.org/index/index/hello
的时候,页面输出结果为:
记住请求地址
在很多时候,我们重定向的时候需要记住当前请求地址(为了便于跳转回来),
我们可以使用 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();
}
}
可以使用redirect助手函数进行重定向
<?php
namespace app\index\controller;
class Index
{
public function hello()
{
return redirect('http://contoso.org');
}
}
redirect函数和控制器的redirect方法的参数顺序有所区别
重定向传参
如果是站内重定向的话,可以支持URL组装,有两种方式组装URL,第一种是直接使用完整地址(/打头)
redirect('/index/index/hello/name/thinkphp');
这种方式会保持原来地址不做任何转换,第二种方式是使用params方法配合,例如:
redirect('hello')->params(['name'=>'thinkphp']);
最终重定向的URL地址和前面的一样的,系统内部会自动判断并调
用url(用于快速生成URL地址的助手函数)方法进行地址生成,相当于
redirect(url('hello',['name'=>'thinkphp']));
还可以支持使用with方法进行重定向隐式传值。
<?php
namespace app\index\controller;
class Index
{
public function index()
{
return redirect('hello')->with('name', 'thinkphp');
}
public function hello()
{
$name = session('name');
return 'hello,' . $name . '!';
}
}
从示例可以看到重定向隐式传值使用的是Session方式隐式传值,
并且仅在下一次请求有效,再次访问重定向地址的时候无效。
我们访问请求
http://contoso.org
会输出:
但当我们第二次请求
http://contoso.org/index/index/hello
的时候,页面输出结果为:
记住请求地址
在很多时候,我们重定向的时候需要记住当前请求地址(为了便于跳转回来),
我们可以使用 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();
}
}
阅读全文
0 0
- ThinkPHP5 响应输出
- ThinkPHP5 响应输出
- ThinkPHP5 响应输出
- ThinkPHP5.0-响应
- ThinkPHP5.0---------请求和响应
- Thinkphp5学习(24)模型输出
- ThinkPHP5学习(6)请求和响应
- thinkphp5 之数据操作和模板输出
- thinkphp5输出执行的sql语句
- ThinkPHP5在SAE环境下的日志输出
- ThinkPHP5的debug配置和视图输出字符串内容替换
- [thinkPHP5项目实战_10]栏目列表输出和删除
- thinkphp5 使用__PUBLIC__等进行模板渲染输出
- Struts 2 用XSLT输出XML响应
- 关于Yaf响应输出的总结
- 请求参数、响应输出中文乱码问题
- java导出文件,输出响应字节数组
- ThinkPHP5 既有输入参数又有输出参数的存储过程该如何调用
- MVP的概述
- Java+opencv3.2.0之膨胀与腐蚀
- 图片亮度
- iOS之断言NSAssert
- json获取数据库的信息在前端页面显示
- ThinkPHP5 响应输出
- spring中applicationContext.xml在web.xml中的配置路径说明
- 逆序对
- UVa 10912
- 【C语言】数组
- 经济生活知识
- MySQL中的锁(表锁、行锁,共享锁,排它锁,间隙锁)
- 关于二维偏序的题
- 几种编码区别