Laravel 5.4 官方文档摘记:请求实例

请求

请求实例

比如一个用户发送一个如下的请求:

Route::patch('user/','UserController@update');

那么在控制器中如何获取用户的输入呢?就可以结合上一篇博客中的方法参数设置,将请求实例传入方法中。请求实例的传入方式如下:

<?php

namespace App\Http\Controllers;
//这个就是请求实例
use Illuminate\Http\Request;

class UserController extends Controller
{
    /**
     * 这里将请求实例传递进入函数
     * @param Request $request
     * @return Response
     */
    public function store(Request $request)
    {
        //假设提交过来的表单中有一个name字段,这样就可以获取该字段了
        $name=$request->name;
    }
}

当然,不止可以在控制器中实例化请求类,在路由中也可以实例化请求类,但是如何设置该请求类的命名空间,那就再说了。

Route::get('user/{id}',function(Request $request){
    $id=$request->id;
});

实例中方法介绍

下面假设请求的URL完整地址是:

http://www.lucifer.morning.star.com.cn/users/id/1/name/angle

路由设置为:

Route::get(‘users/id{id}/.name/{name}’,’UserController@show’)

path()

调用方式是:$request->path()
输出结果是:users/id/1/name/angle

is()

调用方式:$request->is('users/*')
输出结果:true/false

url()

调用方式:$request->url()
输出结果:users

fullUrl()

调用方式:$request->fullUrl()
输出结果:users/id/1/name/angle

method()

调用方式:request->method()
输出结果:show()

isMethod()

调用方式:$request->idMethod('show')
输出结果:true/false

all()

调用方式:$request->all()
输出结果:获取请求全部信息

input(‘key’[,’default value’])

调用方式:$request->input('name','default value')
输出结果:当name字段存在时,输出name的原始值,当name字段不存在时,输出该函数的第二个参数default value

另外在.表示数组,下面假设传递过来的表单内容如下:


$form=[
    'name'=>['John','Mike','Kitty']
];

那么获取name数组下的第二个参数可以使用下面的形式:

//注意,数组的下标是0开始的
$name=$request->input("name.1");

当你访问的是JSON格式的数据的时候,你可以这样读取其中的值:

$name=$request->input('name.firstName');

only()

调用方式:$request->only(['fieldName1','fieldName2']
输出结果:字段fieldName1fieldName2字段的值

expect()

only很像

intersect()

调用方式:$request->intersect(['fieldName1','fieldName2'])
输出结果:这两个字段存在时,才会进行读取

has()

调用方式:$request->has('name')
输出结果:true/false

flash()

调用方式:$request->flash()
输出结果:就是将该$request缓存起来,但是该缓存仅有一次有效

old()

调用方式:$request->old()
输出结果:获取上一次$request实例

调用方式:$request->cookie('name')
输出结果:设置cookie

file()

调用方式:$request->file('fileName')
输出结果:Illuminate\Http\UploadedFile类的一个实例

跟这个配套使用的还有另一个方式:isValid()

//判断该文件是否正确上传到服务器了
$request->file('fileName')->isValid()

hasFile()

调用方式:$request->hasFile('fileName')
输出结果:判断该文件是否存在,可以和上面的isValid配套使用

extension()

调用方式:$request->fileName->extension()
输出结果:获取上传文件的扩展名

store()

使用该方法可以将文件保存,注意!!!这里的fileName2是文件的完整名称路径。

调用方式:$request->fileName->store('fileName2'[,'Disk_Name'])
输出结果:保存文件的路径

storeAs()

调用方式:$request->fileName->saveAs('fileName2','fileSaveName'[,'Disk_Name'])
输出结果:就是可以指定保存文件的文件名,否则会像使用store时一样,保存的文件名是随机生成的

 重定向时同时传递请求实例

//直接调用withInput()函数将请求实例作为参数一同传递过去
return redirect()->withInput();
//删除其中的某些字段
return redirect()->withInput($request->expect('password'));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值