Mục Lục
Mục Lục
Hướng dẫn cài đặt môi trường [Bài Viết] Hướng dẫn cài composer [Bài Viết] Hướng dẫn tạo dự án Laravel đầu tay. [Bài Viết] Hướng dẫn cấu hình cơ sở dữ liệu và bật chức năng auth có sẵn trong Laravel [Bài Viết] Hướng dẫn cài theme Acacha AdminLTE cho Laravel [Bài Viết] Hướng dẫn tắt debug khi upload dự án laravel lên HOST Video Hướng dẫn cài đặt môi trường + tạo dự án + Tìm hiểu Route qua ví dụ - Lập trình Laravel Video Hướng dẫn cài đặt dự án Laravel + Cài đặt chức năng Auth (login + register) trong Laravel Tìm hiểu Route & View & Controller Video Tìm hiểu Route trong Laravel + Học lập trình laravel qua ví dụ Hello World, ax+b=0, Hiển thị danh sách sinh viên Video Tìm hiểu Route qua ví dụ quản lý sinh viên - Laravel Video Hướng dẫn tìm hiểu Route - Controller - View trong Laravel qua ví dụ Video Lập trình Laravel - Truyền dữ liệu từ Controller qua View - Ví dụ Hello World trong Laravel Phần 1 Video Lập trình Laravel - Truyền dữ liệu từ Controller qua View - Ví dụ Tính giai thừa trong Laravel Phần 2 Video Lập trình Laravel - Truyền dữ liệu từ Controller qua View - Ví dụ hiển thị danh sách sinh viên trong Laravel Phần 3 Tìm hiểu route + truyền dữ liệu từ controller tới view qua bài quản lý khách sạn- Lập trình Laravel Tìm hiểu route + truyền dữ liệu từ controller tới view qua bài quản lý sản phẩm - Lập trình Laravel Tìm hiểu Route - Controller - View trong Laravel Route: Giải phương trình bậc 2 (ax2 + bx + c = 0) bằng Laravel - Lập trình laravel BÀI TẬP LARAVEL CƠ BẢN - Lập Trình Laravel - Route → Controller → View QUẢN LÝ SINH VIÊN (KHÔNG DÙNG DATABASE) - Khóa học lập trình Laravel GET/POST trong Laravel Video Tìm hiểu GET/POST trong Laravel qua ví dụ nhập thông tin người dùng - Lập trình Laravel Quản lý sinh viên bằng Laravel - Lập trình Laravel Video Quản lý sinh viên bằng Laravel - Lập trình Laravel Layout - Blade Video Tìm hiểu Route - Blade (nhung css/js/photos) - cú pháp Blade - Xử lý GET/POST trong Laravel Video Hướng dẫn tìm hiểu layout trong Laravel - qua ví dụ tạo website tin tức - Lập Trình Laravel Bài Tập Học Layout thông qua clone website - Creative Theme Bootstrap Free - Lập trình Laravel Kết nối CSDL - Laravel Video Hướng dẫn tìm hiểu view, migration, seeder, db - laravel - Qua ví dụ quản lý sinh viên Video Học Laravel qua ví dụ thêm & hiển thị tài khoản người dung - DB::Insert - DB::get - Paginate - Khoá Học Laravel Tìm hiểu migration trong laravel - Lập trình laravel Chương trình quản lý điểm danh Aptech - Lập trình Laravel - Lập trình PHP/Laravel Video - Chương trình quản lý điểm danh Aptech - Lập trình Laravel - Lập trình PHP/Laravel Video Bài tập quản lý sách bằng Laravel - Full Source Code quản lý sách - Lập trình Laravel Ôn tập - Chương trình quản lý sách + danh mục sách - Lập trình PHP, Laravel Website thi trắc nghiệm lập trình Aptech - Lập trình laravel - Lập trình PHP Tạo 1 POS bán hàng cho siêu thị - Supper Market - Lập trình Laravel Video - Tạo 1 POS bán hàng cho siêu thị - Supper Market - Lập trình Laravel Video Hướng dẫn tim hiểu Pagination + model qua ví dụ quản lý sinh viên - Lập trình Laravel Tìm hiểu paginate trong laravel - Quản lý sản phẩm - Lập trình Laravel Ứng dụng Quản lý Sách trong Laravel Phân quyền - Chức năng nâng cao Video - Tìm hiểu Auth trong Laravel Video Phân Quyền-Hướng dẫn viết chức năng phân quyền người dùng theo role Lâp Trình PHP/Laravel Video API Resful Laravel - Hướng dẫn tạo API Resful bằng PHP/Laravel - Khóa học lập trình PHP/Laravel [Examination] Examination & Test + Website tra cứu luật giao thông đường bộ - Lập trình PHP - Lập trình Laravel [Examination] Bài tập ôn luyện kết thúc môn - Sử dụng Laravel + Ajax Thực Chiến: Web bán hàng Video Hướng dẫn tạo dự án super market - phần 1 - Laravel Video Hướng dẫn tạo dự án super market - phần 2- laravel Video Tạo giở hàng - học lập trình laravel qua project- Phần 3 - laravel Khóa Học Lập Trình Laravel Thực Chiến Video Source Code Dự Án - Thực Chiến Web Bán Hàng Video Phần 1 | Laravel | Web bán hàng - Giới thiệu công nghệ Video Phần 2 | Phân tích thiết kế CSDL (database) | Web bán hàng PHP/MySQL Video Phần 3 | Phân tích thiết kế CSDL (database) | Web bán hàng PHP/MySQL Video Phần 4 | Laravel | Thiết kế web bán hàng - Cài đặt dự án & Authetication & Migration CSDL Video Phần 5 | Laravel | Thực Chiến - Web Bán Hàng -Tích hợp template và chỉnh sửa trang đăng ký-đăng nhập Video Phần 6 | Laravel | Thực Chiến - Web Bán Hàng - Chức năng Role trong dự án Video Phần 7 | Laravel | Thực Chiến - Web Bán Hàng - Chức năng quản lý người dung trong dự án Video Phần 8 | Laravel | Thực Chiến - Web Bán Hàng - Chức năng quản lý danh mục Video Phần 9 | Laravel | Thực Chiến - Web Bán Hàng - Chức năng Quản lý sản phẩm Video Phần 10 | Laravel | Thực Chiến - Web Bán Hàng - Chức năng Quản lý tin tức Video Phần 11 | Laravel | Thực Chiến - Web Bán Hàng - Chức năng Quản lý phản hồi Video Phần 12 | Laravel | Thực Chiến - Web Bán Hàng - Chức năng Quản lý đơn hàng Video Phần 13 | Laravel | Thực Chiến - Web Bán Hàng - Chức năng bảo mật trong dự án Video Phần 14 | Laravel | Thực Chiến - Web Bán Hàng - Trang Chủ & Phân Layout Video Phần 15 | Laravel | Thực Chiến - Web Bán Hàng - FE Trang Sản Phẩm Video Phần 16 | Laravel | Thực Chiến - Web Bán Hàng - FE Trang Tin Tức Video Phần 17 | Laravel | Thực Chiến - Web Bán Hàng - FE Trang Liên Hệ Unlisted Video Phần 18 | Laravel | Thực Chiến - Web Bán Hàng - FE Trang Chi Tiết Tin Tức Video Phần 19 | Laravel | Thực Chiến - Web Bán Hàng - FE Chi Tiết Sản Phẩm Video Phần 20 | Laravel | Thực Chiến - Web Bán Hàng - Trang giỏ hàng Video Phần 21 | Laravel | Thực Chiến - Web Bán Hàng - Trang thanh toán & hoàn thành thanh toán Video Phần 22 | Laravel | Final | Hướng dẫn cài đặt dự án từ source code mẫu
Laravel Tutorial

[Video] Tìm hiểu GET/POST trong Laravel qua ví dụ nhập thông tin người dùng - Lập trình Laravel

Mở bài

Trong hành trình học lập trình Laravel, một trong những khái niệm quan trọng mà bất kỳ lập trình viên nào cũng cần nắm vững là phương thức GET và POST. Đây là hai phương thức cơ bản trong giao tiếp giữa client (trình duyệt)server (máy chủ), đóng vai trò nền tảng trong việc gửi và nhận dữ liệu. Laravel — với triết lý “simple yet powerful” — đã cung cấp một cách tiếp cận cực kỳ thân thiện để làm việc với GET/POST thông qua route, controller, và request.

Nếu bạn từng băn khoăn làm thế nào để lấy dữ liệu người dùng từ form HTML và xử lý nó trong backend Laravel, thì bài viết này chính là dành cho bạn. Chúng ta sẽ cùng nhau tìm hiểu GET/POST trong Laravel qua ví dụ nhập thông tin người dùng, từng bước rõ ràng, có ví dụ thực tế, mã nguồn minh họa và giải thích chi tiết.

Sau bài viết này, bạn sẽ:

  • Hiểu rõ sự khác biệt giữa GET và POST trong Laravel.

  • Biết cách khai báo route và form tương ứng.

  • Viết controller nhận dữ liệu, xử lý và trả kết quả ra view.

  • Áp dụng best practices trong việc bảo mật và tối ưu code.

Cùng bắt đầu khám phá và làm chủ cơ chế GET/POST trong Laravel để biến các form HTML của bạn trở nên sống động và tương tác mạnh mẽ hơn bao giờ hết.

Tìm hiểu cơ bản về phương thức GET và POST

GET là gì?

Phương thức GET được sử dụng để lấy dữ liệu từ server. Khi bạn truy cập một URL hoặc gửi form bằng GET, dữ liệu sẽ được gửi qua tham số query string trong URL, ví dụ:

https://example.com/users?name=Diep&age=25

Đặc điểm của GET:

  • Dữ liệu hiển thị trên thanh địa chỉ.

  • Thường dùng để tìm kiếm, lọc dữ liệu, không nên dùng để gửi thông tin nhạy cảm.

  • Giới hạn kích thước dữ liệu (tùy trình duyệt).

POST là gì?

Ngược lại, POST dùng để gửi dữ liệu tới server để xử lý hoặc lưu vào cơ sở dữ liệu. Dữ liệu không hiển thị trên thanh địa chỉ, được gửi ngầm qua body của request.

Đặc điểm của POST:

  • Dữ liệu bảo mật hơn so với GET.

  • Thường dùng cho form đăng ký, đăng nhập, tạo mới bản ghi.

  • Không giới hạn độ dài dữ liệu.

Laravel hỗ trợ cả hai phương thức này một cách trực quan thông qua Route::get()Route::post(), cho phép bạn tách biệt logic xử lý cho từng loại request.

Tạo project và cấu hình cơ bản trong Laravel

Trước tiên, bạn cần khởi tạo một dự án Laravel mới để thực hành ví dụ:

composer create-project laravel/laravel form-example cd form-example

Cấu hình kết nối database (nếu cần) trong file .env, nhưng với ví dụ nhập thông tin người dùng này, ta có thể xử lý ngay trong controller mà không cần database.

Tiếp theo, chạy lệnh để khởi động server:

php artisan serve

Khi truy cập http://127.0.0.1:8000, bạn sẽ thấy giao diện mặc định của Laravel. Từ đây, ta bắt đầu thực hiện ví dụ minh họa GET/POST.

Định nghĩa route GET và POST trong Laravel

Trong Laravel, các route (đường dẫn) được khai báo trong file routes/web.php. Route có thể lắng nghe nhiều loại request khác nhau, tùy vào phương thức HTTP.

Ví dụ, ta tạo một form nhập thông tin người dùng với 2 bước:

  1. Hiển thị form nhập (GET request).

  2. Xử lý khi người dùng gửi form (POST request).

Mở file routes/web.php và thêm:

use App\Http\Controllers\UserController; use Illuminate\Support\Facades\Route; Route::get('/user/form', [UserController::class, 'showForm'])->name('user.form'); Route::post('/user/submit', [UserController::class, 'handleSubmit'])->name('user.submit');
  • Route::get() được dùng để hiển thị form.

  • Route::post() xử lý dữ liệu khi người dùng nhấn nút Submit.

  • Dùng name() để đặt tên route, giúp dễ dàng tham chiếu trong view.

Tạo Controller để xử lý GET/POST

Tiếp theo, ta tạo UserController để viết logic xử lý dữ liệu.

Chạy lệnh:

php artisan make:controller UserController

Trong file app/Http/Controllers/UserController.php, thêm nội dung:

namespace App\Http\Controllers; use Illuminate\Http\Request; class UserController extends Controller { // Hiển thị form nhập thông tin người dùng public function showForm() { return view('user.form'); } // Xử lý dữ liệu sau khi người dùng gửi form public function handleSubmit(Request $request) { // Lấy dữ liệu từ form $name = $request->input('name'); $email = $request->input('email'); $age = $request->input('age'); // Validate dữ liệu (ví dụ đơn giản) $request->validate([ 'name' => 'required|min:3|max:50', 'email' => 'required|email', 'age' => 'required|numeric|min:1|max:120', ]); // Truyền dữ liệu sang view kết quả return view('user.result', compact('name', 'email', 'age')); } }

Ở đây, ta đã sử dụng đối tượng Request — công cụ mạnh mẽ của Laravel để nhận, kiểm tra và xử lý dữ liệu.

Tạo View hiển thị form nhập thông tin người dùng

Laravel dùng Blade Template Engine để tạo view.
Tạo file resources/views/user/form.blade.php:

<!DOCTYPE html> <html> <head> <title>Nhập thông tin người dùng</title> </head> <body> <h1>Form Nhập Thông Tin Người Dùng</h1> @if ($errors->any()) <div style="color: red;"> <ul> @foreach ($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif <form action="{{ route('user.submit') }}" method="POST"> @csrf <label for="name">Họ và tên:</label><br> <input type="text" id="name" name="name" value="{{ old('name') }}"><br><br> <label for="email">Email:</label><br> <input type="email" id="email" name="email" value="{{ old('email') }}"><br><br> <label for="age">Tuổi:</label><br> <input type="number" id="age" name="age" value="{{ old('age') }}"><br><br> <button type="submit">Gửi thông tin</button> </form> </body> </html>

Một vài điểm đáng chú ý:

  • Sử dụng @csrf để thêm token bảo mật chống tấn công CSRF.

  • old('field') giúp giữ lại dữ liệu cũ khi validate lỗi.

  • $errors->any() hiển thị danh sách lỗi trả về từ validate.

Khi truy cập /user/form, bạn sẽ thấy form nhập thông tin người dùng sẵn sàng gửi dữ liệu bằng phương thức POST.

Hiển thị kết quả sau khi gửi form

Tạo view resources/views/user/result.blade.php:

<!DOCTYPE html> <html> <head> <title>Kết quả nhập thông tin</title> </head> <body> <h1>Kết quả thông tin người dùng</h1> <p><strong>Họ và tên:</strong> {{ $name }}</p> <p><strong>Email:</strong> {{ $email }}</p> <p><strong>Tuổi:</strong> {{ $age }}</p> <a href="{{ route('user.form') }}">← Quay lại Form</a> </body> </html>

Giờ khi bạn điền form và bấm “Gửi thông tin”, dữ liệu sẽ được gửi qua POST đến controller, xử lý và truyền ngược trở lại view này để hiển thị.

Phân tích luồng hoạt động của GET/POST trong Laravel

  1. GET requestRoute::get('/user/form')UserController@showForm → render view form.

  2. Người dùng nhập dữ liệu → click Submit → gửi POST request.

  3. POST requestRoute::post('/user/submit')UserController@handleSubmit.

  4. Controller validate, lấy dữ liệu, truyền sang view user.result.

  5. View kết quả hiển thị thông tin người dùng.

Cấu trúc chuẩn MVC được tuân thủ hoàn hảo:

  • Model (nếu có): quản lý dữ liệu.

  • Controller: xử lý logic.

  • View: hiển thị nội dung.

Lời khuyên khi sử dụng GET và POST trong Laravel

  1. Dùng GET cho các thao tác đọc: tìm kiếm, lọc, xem chi tiết.

  2. Dùng POST cho các thao tác ghi: thêm, cập nhật, xóa dữ liệu.

  3. Bảo mật form với CSRF token: Laravel tự động thêm nếu bạn dùng @csrf.

  4. Validate dữ liệu trước khi xử lý để tránh lỗi và tấn công.

  5. Không lạm dụng POST cho mọi thao tác — hãy tuân thủ chuẩn RESTful.

  6. Sử dụng named route thay vì hardcode URL để dễ bảo trì.

  7. Hiển thị lỗi thân thiện giúp người dùng dễ sửa thông tin sai.

Mở rộng: Kết hợp GET và POST trong cùng module

Bạn có thể kết hợp GET và POST trong cùng chức năng, ví dụ trang quản lý người dùng:

  • GET: hiển thị danh sách người dùng, có filter theo tên/email.

  • POST: xử lý khi thêm mới người dùng.

Ví dụ:

Route::get('/users', [UserController::class, 'index'])->name('users.index'); Route::post('/users', [UserController::class, 'store'])->name('users.store');

Điều này giúp giữ cho ứng dụng gọn gàng, rõ ràng về mục đích của từng request — đúng với tinh thần RESTful mà Laravel khuyến nghị.

Một số lỗi thường gặp khi làm việc với GET/POST trong Laravel

  1. 419 Page Expired – Do quên thêm @csrf trong form.

  2. MethodNotAllowedHttpException – Gửi form bằng POST nhưng route chỉ khai báo GET.

  3. ValidationException – Nhập dữ liệu sai định dạng, không qua validate.

  4. Undefined variable trong view – Do không truyền biến qua compact() hoặc with().

Cách khắc phục:

  • Luôn kiểm tra lại phương thức trong route.

  • Sử dụng dd($request->all()) để debug dữ liệu nhận được.

  • Đọc log tại storage/logs/laravel.log để biết chi tiết lỗi.

Kết luận

Qua bài viết này, bạn đã hiểu trọn vẹn về GET/POST trong Laravel — hai phương thức cốt lõi giúp client và server trao đổi dữ liệu. Từ việc hiển thị form, xử lý dữ liệu gửi đi, validate, đến hiển thị kết quả — tất cả đều tuân theo mô hình MVC chuẩn mực của Laravel.

Thông qua ví dụ nhập thông tin người dùng, bạn không chỉ học được cách viết route, controller, view mà còn biết cách tổ chức code hợp lý, bảo mật form, và tối ưu trải nghiệm người dùng.

Bước tiếp theo, hãy mở rộng ví dụ này bằng cách:

  • Lưu dữ liệu vào database bằng Eloquent.

  • Thêm tính năng sửa, xóa và danh sách người dùng.

  • Kết hợp AJAX để gửi form mà không cần reload trang.

Khi nắm vững cơ chế GET/POST trong Laravel, bạn đã có nền tảng vững chắc để xây dựng các ứng dụng web mạnh mẽ, bảo mật và thân thiện hơn. Laravel không chỉ giúp lập trình dễ dàng — mà còn giúp bạn tư duy như một developer chuyên nghiệp.

Hãy bắt đầu mở Visual Studio Code, tạo file route, controller, view và thử ngay ví dụ này — bởi chỉ khi bạn gõ từng dòng code, khái niệm GET/POST mới thật sự trở thành của bạn.



Đăng nhập để làm bài kiểm tra

Chưa có kết quả nào trước đó

×