What is Request? -- 什么是Request?
Request是请求类,当用户访问一个路由时就会向服务器发送一个请求,我们有时呢 会获取用户传过来的一些参数来做相应的相应逻辑,所以说 Request是我们Laravel攻城狮的基本功,必须要掌握滴~
What functions does it have? -- 它有什么功能?
它可以取到用户发过来的数据,可以获取到当前请求的方法 如GET和POST,URL和URI等。
When do we use it? -- 什么时候使用?
有时在Controller中 根据用户发来的数据做一些逻辑 比如对数据库的更改、返回一些数据,再有就是在middleware中做一些认证时用到(比如说限制只有登录才可访问)。
用Request取数据
GET方法:了解Request的一些用作和功能后,我们来看看它如何取数据
1、首先创建Controller,然后在route中注册一个路由:
Route::get('/test', 'TestController@index');
2、这个路由指向到TestController的index方法
public function index(Request $request) { echo $request->id; }
public function index(Request $request) { // 这种方法也可以 echo $request->input('id'); }
3、我们如何来输入参数呢?
在浏览器输入:http://localhost:8000/test?id=5
就会打印出:5
POST方法: 要发送简单的POST请求,推荐大家下一个Postman。
1、首先注册一条post路由:
Route::post('/test/post', 'TestController@testPost');
2、在控制器中注册方法:
public function testPost(Request $request) { // 取到单个值 // dd($request->name); // 取到所有值 // dd($request->all()); // 只取哪些值 // dd($request->only(['age','name'])); // 取出除了这些键的值 dd($request->except('name')); }
3、使用Postman发送一条请求,在body中加入以下键值对:
name : Alex age : 24 birthday : 1993-4-16
之后在Postman中就可以看见相应的数据了,我不会展示给你看,你需要自己敲敲代码。
Request提供的一些方法
以下方法可以在写middleware中运用到,关于middleware 下一篇就会讲到。
$request->method(); // 返回一个字符串 如果是GET方式 则返回"GET" $request->path(); // 返回一个字符串 比如你请求的路径是 localhost:8000/test 那么就返回"test" $request->url(); // 返回一个字符串 比如你请求的路径是 localhost:8000/test?id=10 那么就返回""http://localhost:8000/test"" $request->fullUrl(); // 返回一个字符串 比如你请求的路径是 localhost:8000/test?id=10 那么就返回"http://localhost:8000/test?id=1"
更多方法进到Request中就能看见。