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中就能看見。