本文实例讲述了laravel5.1 框架响应基本用法。分享给大家供大家参考,具体如下:

上篇笔记刚刚记录完请求 这节就来说说响应,一般来说啊 一个请求对应一个响应,用户都请求咱了 咱必须做一些逻辑后给人家反馈是不是,这就是响应。

1 基本的响应

我们前几篇笔记已经用过很多响应了,其中包括字符串:

route::get('/', function () {
  return '欢迎欢迎';
});

注:我们写的是返回简单的字符串,但是laravel框架会自动把它组成一个响应。

1.1 自定义响应头

route::get('/', function () {
  return (new \illuminate\http\response('hello', 200))->header('content-type', 'text/html');
});

我们还可以使用response全局帮助函数来生成相应,如果想要指定多个响应头 可以链式操作↓

route::get('/', function () {
  return response('hello')
    ->header('content-type', 'text/html')
    ->header('something', 'something');
});

1.2 添加cookie信息

我们可以使用withcookie函数来添加cookie信息。

route::get('/', function () {
  return response('hello')
    ->header('content-type', 'text/html')
    ->withcookie('cookie-name', 'value');
});

1.3 返回视图

之前我们使用的是帮助函数view(),今天来点儿麻烦的- -:

route::get('/', function () {
  return response()
    ->view('welcome')
    ->withcookie('newcookie', 'home');
});

1.4 返回json

当我们开发api时 json是必须会的哦:

route::get('/', function () {
  return response()
    ->json([
      "name" => "k",
      "age" => 24
    ]);
});

1.5 重定向

重定向我们之前也使用过,回顾下吧:

route::get('/', function () {
  return redirect()->action('admin\homecontroller@index');
});

有的时候啊 我们需要重定向到当前页面的前一个位置,可以用back函数:

route::get('/', function () {
  // withinput可以将之前页面用户输入的信息一起返回去,这样方便用户不用重复输入。
  return back()->withinput();
});

当用户输入正确后重定向 应该给人家一些提示是吧 我们可以用一次性的session来传递:

route::get('/', function () {
  return redirect()->action('admin\homecontroller@index')->with('status', 'success');
});
  @if(session('status'))
    <div class="alert alert-success">
      {{ session('status') }}
    </div>
  @endif