PHP Laravel - GET 及 POST 表單處理 - 筆記長也NotesHazuya

PHP Laravel - GET 及 POST 表單處理

2020-06-07 00:04:51   Laravel

GET 及 POST 方法

我們在介紹 route 的時候已經介紹過了有關 http 協定的幾種方法,在本篇文章將會介紹有關如何操作。

GET  方法

GET 方法的參數會夾帶在 URL 當中

Route::get('/articles/{page?}',function($page){
    return $page;
});

在 route 那篇介紹過選擇性參數,取出的方式就是閉包當中的參數。

如果是 controller ,就在 controller 中對應的方法帶入參數即可。

Route

Route::get('person/{userID}', 'UserController@getUserPage')

也可以驗證參數是否符合要求

Route::get('person/{userID}', 'UserController@getUserPage')->where('userID', '[0-9A-Za-z]+');

UserController

public function getUserPage($userID){
    //
}

POST 方法

POST 方法通常搭配表單一起送出,先新增一個表單的模板

<form action="login" method="post">
  <input name="username" type="text">
  <input type="submit" value="登入">
  <input type="hidden" name="_token" value="{{ csrf_token() }}">
</from>

這個表單會被送到一個叫做 login 的路由,然後記得要加入隱藏欄位 _token , laravel 預設提供 csrf 保護。

Route

Route::post('login', userController@login});

新增 login 路由,記得指定方法為 post。

userController

public function login(Request $request)
{
   echo $request->username
}

在 userController 新增 login 方法,記得帶入參數 Request 實體,這個實體裡面會包含了表單的資料。取出資料也很簡單,設計表單的時候在每個 input 標籤中指定了 name 屬性,這個名稱就會是 Request 實體中的屬性。

如果都沒有問題,應該可以看到這樣的結果

輸入資料

取出資料

本篇介紹到這裡,下一篇將會介紹 Middleware 中間件的部分,可以對請求做驗證。


長也

我只專注做好自己能做的事情,別人要做什麼我無法干涉。