课程内容

本laravel 视频讲解请求和响应,首先什么是请求

请求就是我们的数据之间的交互。

laravel 的请求全部使用Illuminate\Http\Request这个类的方法

  • $uri = $request->path(); 请求路径
http://domain.com/foo/bar,则 path 方法会返回 foo/bar:
  • 判断路径 is方法
if ($request->is('admin/*')) {
    //
}
  • 请求页面地址
// 没有查询字符串...
$url = $request->url();

// 带查询字符串...
$url = $request->fullUrl();
  • 请求方法
$method = $request->method();

if ($request->isMethod('post')) {
    //
}
  • 全部数据
$input = $request->all();
  • 获取单个
$name = $request->input('name');
$name = $request->input('name','默认值');
  • 动态属性获取输入
$name = $request->name;

将输入数据传送到 Session

  • flash 方法将把当前的输入传送到 session
$request->flash();

$request->flashOnly(['username', 'email']);

$request->flashExcept('password');

传送数据并跳转

return redirect('form')->withInput();

return redirect('form')->withInput(
    $request->except('password')
);

获取旧数据

$username = $request->old('username');

从请求中获取 Cookies

$value = $request->cookie('name');

写入到cookies

return response('Hello World')->cookie(
    'name', 'value', $minutes, $path, $domain, $secure, $httpOnly
);

文件上传

$file = $request->file('photo');

//==

$file = $request->photo;

判断是否存在file字段

if ($request->hasFile('photo')) {
    //
}

判断是否上传有效

if ($request->file('photo')->isValid()) {
    //
}

文件路径 & 扩展名

$path = $request->photo->path();

$extension = $request->photo->extension();

存储上传文件

$path = $request->photo->store('images');

$path = $request->photo->store('images', '磁盘配置名字');

自定义名字

$path = $request->photo->storeAs('images', 'filename.jpg', 's3');

响应

就是响应数据

添加响应头

return response($content)
            ->header('Content-Type', $type)
            ->header('X-Header-One', 'Header Value')
            ->header('X-Header-Two', 'Header Value');

或者数组形式

return response($content)
            ->withHeaders([
                'Content-Type' => $type,
                'X-Header-One' => 'Header Value',
                'X-Header-Two' => 'Header Value',
            ]);

添加 Cookies 到响应

return response($content)
                ->header('Content-Type', $type)
                ->cookie('name', 'value', $minutes);

重定响

redirect

跳转目录

return redirect('home/dashboard');

用户重定向到之前的位置

return back()->withInput();

命名路由

redirect()->route('login');

控制器

 redirect()->action('HomeController@index');

外部域名

return redirect()->away('https://www.google.com');

重定向并使用闪存的 Session 数据

说白了就是一次性session存储 第二次刷新就没有了

 return redirect('dashboard')->with('status', 'Profile updated!');

视图响应

return response()
            ->view('hello', $data, 200)
            ->header('Content-Type', $type);

JSON 响应

return response()->json([
    'name' => 'Abigail',
    'state' => 'CA'
]);

JSONP 响应

return response()
            ->json(['name' => 'Abigail', 'state' => 'CA'])
            ->withCallback($request->input('callback'));

文件下载

return response()->download($pathToFile)->deleteFileAfterSend();

$pathToFile 是绝对路径,不能使用http路径

评论区 (0)

没有记录
支持 markdown,图片截图粘贴拖拽都可以自动上传。