Laravel 5.4 官方文档摘记:响应

响应

前一篇介绍了请求,接下来就是发送给用户响应了。

自动创建响应

例如我们在路由文件中这么设置:

Route::get('user',function(){
    return 'hello world';
});

这里的return 'hello world';中的hello world字符串会自动被封装成一个响应,返回给用户。Laravel中的响应类是:Illuminate\Http\Response

Response对象

header方法

可以自定义HTTP请求中的Header头,这一部分我是真不熟。

cookie方法

可以设置响应中的cookie,另外,所有的cookie都是经过加密的,如果你不想加密该cookie的话,那么可以在app\Http\Middleware\EncryptCookie.php中进行设置:

<?php

namespace App\Http\Middleware;

use Illuminate\Cookie\Middleware\EncryptCookies as BaseEncrypter;

class EncryptCookies extends BaseEncrypter
{
    /**
     * 这个
     * @var array
     */
    protected $except = [
        //
    ];
}

这种方式和解除CSRF保护的设置方式很像。

重定向

这个大概是最重要的内容之一了。这里直接看例子吧。

redirect()

直接跳转到对应的路由设置:return redirect('users/');

回到前一个页面

return back();

如果想回到前一个页面时保留用户的输入信息,那么可以这么设置:

return back()->withInput();

使用路由name设置

假设在路由设置中是这样设置的:Route::get('users','UserController')->name('homepage'),那么可以这样设置重定向后的跳转方式:

return redirect()->route('homepage');

当然就跟调用route()函数一样,可以直接传递进去参数。

return redirect()->route('homepage',['name'=>'trouble i am in']);

重定向到控制器和对应方法

return redirect()->action('UserController@show')

传递参数:

return redirect()->action('UserController@show',['id'=>1]);

缓存

可以在重定向时进行一次性缓存:

return redirect()->with('key','value');

然后就可以在外部直接调用session('key')就可以读取缓存的值了。

返回视图

return view('user');

当然可以往视图中传入数据:

return view('user',['userName'=>'trouble i am in']);

JSON响应

return response()->json(['name'=>'trouble i am in','age'=>23]);

这里会自动在后台调用PHP的json_encode对数组进行处理。

文件预览

该方法可以将文件发送客户的浏览器,方便用户进行预览,如果用户想要该文件,那么再进行下载。就像我们可以在线预览一篇PDF,但是下载的话就需要点击后才可以进行下载。

return response()->file($filePath);

在该函数中也可以将头部信息进行插入:

return response()->file($filePath,$headerInfo);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值