## 介绍 Response组件服务用于 http响应的相关处理。 其他产品也可以使用该组件,请登录 [GITHUB](https://github.com/houdunwang/response) 查看源代码与说明文档。 [TOC] ## 状态码 #### 设置状态码 向客户端发送HTTP状态码 ``` Response::sendHttpStatus(404); ``` ## 404响应 返回404状态码并输出错误视图,config/app.php 配置文件中的 404 配置段中定义错误页面 ``` return Response::_404(); ``` #### 获取状态码 获取使用 sendHttpStatus 发送的状态码 ``` Response::getCode(); ``` ## 生成链接 以下方法生成链接但不会进行跳转,所有跳转方法都可以使用链式string()函数返回链接字符串。 #### u 生成url 分隔符可以使用 . 或 / 两种。 ``` echo u('home.index.add'); //或 echo redirect('home.entry.index')->string(); ``` #### 添加url参数 ``` u('home.index.add',['cid'=>1,'uid'=>2]); //生成url为: ?s=home/index/add&cid=1&uid=2 ``` #### 生成链接参数与当前$_GET合并 ``` u('home.index.add',['cid'=>1,'uid'=>2],true); //生成url参数除了指定的cid与uid外还有当前$_GET中所有参数 ``` ## 页面跳转 #### 请示当前控制器方法 ``` u('add',['cid'=>1,'uid'=>2]); //全成url为: ?s=默认模块/默认控制器/add ``` #### 路由链接 ``` return redirect()->route('hdcms'); ``` #### 控制器链接 go、redirect函数是别名函数功能一致,都会进行跳转处理。 ``` return go('home.entry.index'); //或 return redirect('home.entry.index'); //或 return redirect()->controller('home.entry.index'); ``` #### 回跳链接 ``` return redirect('back'); ``` #### 刷新页面 ``` return redirect('refresh'); ``` ## 异步响应 #### 语法 ``` public function ajax( $data, $type = "JSON" ) type指返回数据类型包括:TEXT XML JSON 默认为JSON ``` #### 示例 ``` $data=['name'=>'后盾网','url'=>'houdunwang.com'] return Response::ajax($data,'xml'); ``` #### ajax函数 组件提供了ajax函数用于发送异步 ``` $data=['name'=>'后盾网','url'=>'houdunwang.com'] return ajax($data); ``` #### 直接返回 可以在路由闭包或控制器中直接返回数组,系统会自动以json数组响应给前台。 ``` return ['name'=>'后盾网']; ``` ## 普通模板消息 模板消息是直接以一个页面显示消息内容,然后跳转到指定的地址。 #### 模板文件 模板消息的文件在 system/config/view.php 中定义。 #### 函数语法 ``` /** * 消息提示 * $content 消息内容 * $redirect 跳转方式 1:with(分配错误内容) 2:back或为空(返回上一页) 3:refresh(刷新当前页) 4:具体跳转的Url * $type 信息类型 success(成功),error(失败),warning(警告),info(提示) * @timeout 等待时间单位秒 */ redirect()->show( $content, $redirect = 'back', $type = 'success', $timeout = 2 ) //或使用函数 message( $content, $redirect = 'back', $type = 'success', $timeout = 2 ); ``` 当跳转方式为 with 时会将提示信息以数组的形式返回到页面中,不会使用配置文件中指定的模板文件显示内容。 #### 示例代码 ``` return redirect()->show('操作成功','back','success'); //或使用函数调用 message('操作成功','back','success'); ``` > 如果是Ajax异步请求时系统会返回 {valid:1,message:'响应信息'}的JSON数据。succes时valid为1 ,error 时valid为0 #### 模板变量 系统会分配与消息有关的变量到模板中,如果对模板进行了重新定义那么这些变量显示是需要用到的。因为 跳转方式为 **with** 时不使用模板,所以模板变量对他没有意义。 ``` 'content' => '提示内容', 'redirect' => '跳转方式', 'type' => '消息类型', 'timeout' => '显示时间' ``` ## 确认模板消息 有确定提示的提示页面,不支持ajax操作,模板文件在配置项 config/app.php 文件中的 confirm 配置段中设置。 #### 函数语法 ``` /** * 有确定提示的提示页面 * $message 提示文字 * $sUrl 确定按钮跳转的url * $eUrl 取消按钮跳转的url */ confirm( $message, $sUrl, $eUrl ); ``` #### 示例代码 ``` return confirm('确定删除吗?',u('ok'),u('cancel')); ``` #### 模板变量 ``` $message=>'提示信息', $sUrl=>'确定按钮跳转的url', $eUrl=>'取消按钮跳转的url' ```