Laravel框架(响应【重点】)

在laravel中,响应正常情况下有两种类型:常规的直接响应,另外一种是ajax的响应。其中展示视图以及直接响应字符串都属于常规的响应。

提示:在laravel框架中,不允许响应布尔值。

1.ajax请求的响应

语法:return response() -> json(需要json输出的数据); //数据是数组形式,对象也可以

案例:创建一个路由,访问对应的页面之后,获取member表信息,页面输出json格式的响应。
(1)创建路由
Laravel框架(响应【重点】)
(2)创建需要的方法并获取基本数据
return response() -> json(需要json输出的数据);
Laravel框架(响应【重点】)

注意:在框架中建议不要再去使用php自带的json_encode 方法对数据进行json编码
Laravel框架(响应【重点】)
两者的区别,框架自带的json输出方式不会解析当前页面中其他的所有html输出,只会原样输出。如下:
Laravel框架(响应【重点】)
php自带的json_encode,则会解析当前页面的其他html标记,效果如下:
Laravel框架(响应【重点】)

2.跳转响应(重定向30x

常见的重定向有状态码:301(永久重定向)是服务器发出的、302(临时重定向)是服务器或者代码发出、304(没有被修改),当本地浏览器向服务器发送请求,服务器接受请求后发现资源没有变化,服务器就要求浏览器从客户端的缓存中进行获取。

在有一些页面,例如同步添加操作,完成操作之后不能停留在当前页面,最好做一个跳转操作,也就是需要做一个跳转的响应。

以之前的“上传操作代码”为例:后续比较理想的情况应该是在处理完成之后需要一个跳转提示,告知用户是否成功,成功后则应该返回上一页,失败则应该输出错误提示。

两个跳转方式任选一个:
return redirect(路由)->withErrors([]); 该参数的路由是可以完整的请求路由,也可以是通过route方法+别名获取的路由,例如route(‘别名’)
return redirect()->to(路由)->withErrors([]); 简写成:return redirect(路由)

错误信息的获取与之前自动验证哪里的方法一样,通过$errers变量来获取即可。