Tạo bởi Trần Văn Điêp|
Học Laravel

[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




Nội dung buổi học : CSDL trong Laravel (MySQL)
Ví dụ: Website quản lý thông tin người dùng
- Thêm 1 người dùng mới
- Hiển thị danh sách người dùng

==============================================
B1. Tạo file route cho buổi học hôm nay : db.php => đky để laravel => nhận được file route.

B2. Thiết kế view + định nghĩa route cho ví dụ trên
- Thêm 1 người dùng mới
	- Route: db/input
	- Controller : UserController => showInput => input.blade.php
	- Xử Lý Form => OK
	- Lưu dữ liệu vào database
- Hiển thị danh sách người dùng
	- Route: db/index
	- Controller : UserController => showIndex => index.blade.php

==> database
- localhost => tao CSDL => db1656
- Tao table bang cach nao:
	- Xu dung cach truyen thong => query => DB
	- Tao theo cu phap Laravel
		=> Tao 1 bang usertest trong db => laravel

Laravel là một trong những framework PHP mạnh mẽ nhất hiện nay, được hàng triệu lập trình viên trên toàn thế giới tin tưởng lựa chọn. Điểm nổi bật của Laravel chính là khả năng kết nối, truy xuất và quản lý cơ sở dữ liệu (CSDL) cực kỳ linh hoạt. Trong quá trình học lập trình web, việc hiểu và thực hành với CSDL là bước quan trọng giúp bạn nắm vững nền tảng, đặc biệt là khi làm việc với MySQL trong Laravel.

Trong bài viết này, chúng ta sẽ cùng học Laravel qua ví dụ thêm và hiển thị tài khoản người dùng, thông qua việc sử dụng các phương thức phổ biến như DB::insert, DB::get, và paginate(). Bài viết sẽ hướng dẫn từng bước cụ thể, dễ hiểu — từ tạo route, thiết kế view, viết controller, cho đến hiển thị dữ liệu từ database.

Đây là bài học nằm trong chuỗi Khoá học Laravel cơ bản, phù hợp cho người mới bắt đầu hoặc những ai muốn củng cố kiến thức về làm việc với cơ sở dữ liệu.
Hãy cùng bắt đầu xây dựng một website quản lý thông tin người dùng hoàn chỉnh — nơi bạn có thể thêm người dùng mới và hiển thị danh sách người dùng có phân trang (pagination), giúp hệ thống của bạn chuyên nghiệp và dễ sử dụng hơn!


1. Tổng quan: CSDL trong Laravel (MySQL)

Trước khi bắt tay vào coding, hãy cùng điểm qua cách Laravel làm việc với cơ sở dữ liệu.

Laravel cung cấp một lớp truy cập cơ sở dữ liệu mạnh mẽ thông qua hai phương thức chính:

  • Query Builder: Cho phép bạn viết truy vấn SQL linh hoạt bằng cú pháp PHP.

  • Eloquent ORM: Mạnh hơn, hỗ trợ làm việc với dữ liệu dưới dạng mô hình (model).

Trong bài học này, ta sẽ tập trung vào cách sử dụng DB facade để thực hiện các thao tác cơ bản như:

  • Thêm người dùng mới (DB::insert)

  • Lấy danh sách người dùng (DB::table()->get())

  • Phân trang dữ liệu (paginate())

Đây là những kiến thức nền tảng mà bất kỳ lập trình viên Laravel nào cũng cần nắm vững khi làm việc với các hệ thống có dữ liệu người dùng.


2. Ví dụ thực tế: Website quản lý thông tin người dùng

Chúng ta sẽ xây dựng một ứng dụng nhỏ có hai chức năng chính:

  1. Thêm người dùng mới

    • Người dùng nhập thông tin qua form.

    • Dữ liệu được lưu vào bảng usertest trong CSDL db1656.

  2. Hiển thị danh sách người dùng

    • Hiển thị dữ liệu từ database.

    • Có phân trang để hiển thị gọn gàng.

Mục tiêu:
Hiểu rõ cách Laravel kết nối, chèn dữ liệu và hiển thị danh sách có phân trang, áp dụng được trong các dự án thực tế.


3. Bước 1: Tạo file route cho buổi học – db.php

Trong Laravel, mọi đường dẫn (URL) đều được định nghĩa thông qua file route.
Mặc định Laravel sử dụng file routes/web.php, nhưng để dễ quản lý nội dung học, ta sẽ tạo riêng file db.php.

Thực hiện các bước sau:

B1: Tạo file routes/db.php
B2: Mở file RouteServiceProvider.php trong thư mục app/Providers và đăng ký route mới:

public function boot(): void { parent::boot(); Route::middleware('web') ->group(base_path('routes/db.php')); }

Như vậy, Laravel sẽ nhận diện được file route riêng này, giúp bạn quản lý bài học gọn gàng hơn.


4. Bước 2: Thiết kế View và định nghĩa Route

4.1. Thêm người dùng mới

  • Route: /db/input

  • Controller: UserController@showInput

  • View: input.blade.php

Thêm route trong file routes/db.php:

use App\Http\Controllers\UserController; Route::get('/db/input', [UserController::class, 'showInput']); Route::post('/db/save', [UserController::class, 'saveUser']);

4.2. Hiển thị danh sách người dùng

  • Route: /db/index

  • Controller: UserController@showIndex

  • View: index.blade.php

Thêm route:

Route::get('/db/index', [UserController::class, 'showIndex']);

Vậy là bạn đã có 3 route cơ bản cho bài học hôm nay.


5. Bước 3: Tạo Controller – Xử lý logic nghiệp vụ

Tạo Controller:

php artisan make:controller UserController

Mở file UserController.php và thêm nội dung:

namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; class UserController extends Controller { // Hiển thị form nhập public function showInput() { return view('input'); } // Lưu người dùng vào database public function saveUser(Request $request) { $name = $request->input('name'); $email = $request->input('email'); DB::insert('INSERT INTO usertest (name, email) VALUES (?, ?)', [$name, $email]); return redirect('/db/index')->with('success', 'Thêm người dùng thành công!'); } // Hiển thị danh sách người dùng public function showIndex() { $users = DB::table('usertest')->paginate(5); return view('index', ['users' => $users]); } }

Ở đây:

  • DB::insert dùng để thêm dữ liệu vào bảng.

  • DB::table()->paginate(5) giúp hiển thị dữ liệu 5 bản ghi mỗi trang.


6. Bước 4: Thiết kế View – Giao diện thêm và hiển thị người dùng

6.1. Giao diện thêm người dùng (input.blade.php)

Tạo file resources/views/input.blade.php:

<!DOCTYPE html> <html> <head> <title>Thêm người dùng</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"> </head> <body class="container mt-5"> <h3 class="mb-4 text-center">Thêm người dùng mới</h3> <form action="/db/save" method="POST"> @csrf <div class="mb-3"> <label>Họ và tên:</label> <input type="text" name="name" class="form-control" placeholder="Nhập tên người dùng" required> </div> <div class="mb-3"> <label>Email:</label> <input type="email" name="email" class="form-control" placeholder="Nhập email" required> </div> <button type="submit" class="btn btn-primary">Thêm mới</button> </form> </body> </html>

6.2. Giao diện hiển thị danh sách (index.blade.php)

Tạo file resources/views/index.blade.php:

<!DOCTYPE html> <html> <head> <title>Danh sách người dùng</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"> </head> <body class="container mt-5"> <h3 class="mb-4 text-center">Danh sách tài khoản người dùng</h3> @if(session('success')) <div class="alert alert-success">{{ session('success') }}</div> @endif <table class="table table-bordered"> <thead> <tr> <th>ID</th> <th>Họ và tên</th> <th>Email</th> </tr> </thead> <tbody> @foreach ($users as $user) <tr> <td>{{ $user->id }}</td> <td>{{ $user->name }}</td> <td>{{ $user->email }}</td> </tr> @endforeach </tbody> </table> {{ $users->links() }} </body> </html>

Laravel sẽ tự động tạo phân trang (pagination) với cú pháp {{ $users->links() }} – cực kỳ tiện lợi!


7. Bước 5: Tạo Database – Kết nối với Laravel

7.1. Tạo CSDL

Truy cập phpMyAdmin tại localhost/phpmyadmin
Tạo database mới có tên: db1656.

7.2. Tạo bảng usertest

Có hai cách:

Cách 1: Tạo bằng câu lệnh SQL truyền thống

CREATE TABLE usertest ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), email VARCHAR(100), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );

Cách 2: Tạo bằng migration trong Laravel

php artisan make:migration create_usertest_table

Rồi thêm cấu trúc:

Schema::create('usertest', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email'); $table->timestamps(); });

Chạy lệnh:

php artisan migrate

8. Mẹo thực hành & Lưu ý quan trọng

  • Luôn validate dữ liệu trước khi thêm vào database để tránh lỗi hoặc trùng lặp.

  • Khi hiển thị dữ liệu, dùng paginate() thay vì get() nếu danh sách dài để tránh load chậm.

  • Có thể dùng Eloquent Model thay thế DB::insert nếu muốn viết code ngắn gọn và dễ đọc hơn.

  • Đặt thông báo flash (session('success')) giúp người dùng dễ dàng nhận biết thao tác thành công.

  • Sử dụng Bootstrap hoặc Tailwind CSS giúp giao diện form và bảng dữ liệu đẹp mắt, dễ dùng.


Kết luận

Qua bài học hôm nay, bạn đã nắm được cách làm việc với cơ sở dữ liệu trong Laravel thông qua ví dụ thực tế về thêm và hiển thị tài khoản người dùng.
Bạn đã học cách:

  • Tạo route riêng (db.php) và đăng ký với Laravel.

  • Thiết kế form thêm người dùng (input.blade.php).

  • Lưu dữ liệu bằng DB::insert.

  • Lấy dữ liệu và phân trang bằng DB::table()->paginate().

Những kiến thức này là nền tảng cực kỳ quan trọng giúp bạn dễ dàng xây dựng các tính năng nâng cao hơn trong tương lai như chỉnh sửa, xoá người dùng, đăng nhập – đăng ký tài khoản, hay quản trị hệ thống người dùng.

👉 Hãy thử mở rộng ví dụ này bằng cách thêm chức năng chỉnh sửa (edit)xoá (delete) người dùng – đó chính là bước tiếp theo trong hành trình làm chủ Laravel của bạn!

Chúc bạn học tốt và tiếp tục đồng hành trong khoá học Laravel cùng chúng tôi – nơi bạn biến kiến thức thành kỹ năng thực chiến!

Source Code: https://github.com/tranvandiep/T1907A-Laravel

Phản hồi từ học viên

5

Tổng 0 đánh giá

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

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