Tạo bởi Trần Văn Điêp|
Học 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 khác

Laravel là một trong những framework PHP mạnh mẽ và phổ biến nhất hiện nay, được sử dụng rộng rãi trong việc phát triển các ứng dụng web hiện đại. Với cấu trúc rõ ràng, cú pháp gọn gàng, và hệ thống công cụ hỗ trợ phong phú như View, Migration, Seeder, và Database (DB), Laravel giúp lập trình viên phát triển ứng dụng nhanh chóng, dễ bảo trì và mở rộng.
Trong bài viết này, chúng ta sẽ cùng tìm hiểu chi tiết cách sử dụng View, Migration, Seeder, và DB trong Laravel thông qua một ví dụ thực tế: xây dựng ứng dụng quản lý sinh viên. Bài viết không chỉ giúp bạn nắm vững các khái niệm mà còn hướng dẫn từng bước cụ thể, từ tạo cấu trúc dữ liệu cho đến hiển thị thông tin sinh viên trên giao diện.

Nếu bạn đang bắt đầu học Laravel hoặc muốn củng cố kiến thức về hệ thống quản lý dữ liệu trong framework này, đây sẽ là hướng dẫn toàn diện giúp bạn làm chủ các công cụ cốt lõi, ứng dụng ngay vào thực tế.


1. Tổng quan về cấu trúc MVC trong Laravel

Trước khi đi sâu vào từng phần, bạn cần hiểu Laravel hoạt động theo mô hình MVC (Model – View – Controller).

  • Model: Đại diện cho dữ liệu và tương tác với cơ sở dữ liệu.

  • View: Chịu trách nhiệm hiển thị giao diện cho người dùng.

  • Controller: Xử lý logic, nhận yêu cầu (request) và trả về phản hồi (response).

Trong ví dụ quản lý sinh viên, Migration và Seeder giúp bạn tạo và khởi tạo dữ liệu cho bảng students. DB được dùng để truy vấn dữ liệu, còn View hiển thị danh sách sinh viên lên trang web.


2. Tạo Migration – Xây dựng cấu trúc bảng sinh viên

Migration trong Laravel là công cụ giúp bạn định nghĩa cấu trúc cơ sở dữ liệu bằng PHP thay vì viết SQL thủ công. Việc này giúp việc quản lý phiên bản cơ sở dữ liệu trở nên dễ dàng hơn.

2.1. Tạo migration cho bảng sinh viên

Mở terminal và chạy lệnh:

php artisan make:migration create_students_table --create=students

Lệnh trên sẽ tạo ra một file migration trong thư mục database/migrations.
Mở file vừa tạo và thêm các cột cần thiết:

public function up() { Schema::create('students', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->string('class'); $table->integer('age'); $table->timestamps(); }); }

Sau đó, chạy lệnh:

php artisan migrate

Hệ thống sẽ tự động tạo bảng students trong cơ sở dữ liệu.
Như vậy, bạn đã hoàn thành bước đầu tiên trong việc xây dựng cấu trúc dữ liệu cho ứng dụng quản lý sinh viên.


3. Tạo Seeder – Khởi tạo dữ liệu mẫu cho sinh viên

Seeder trong Laravel được sử dụng để tạo dữ liệu mẫu giúp quá trình phát triển và kiểm thử trở nên thuận tiện hơn.

3.1. Tạo seeder

Chạy lệnh:

php artisan make:seeder StudentSeeder

Sau đó, mở file StudentSeeder.php và thêm nội dung:

public function run() { DB::table('students')->insert([ ['name' => 'Nguyễn Văn A', 'email' => 'vana@example.com', 'class' => 'CNTT1', 'age' => 20], ['name' => 'Trần Thị B', 'email' => 'thib@example.com', 'class' => 'CNTT2', 'age' => 21], ['name' => 'Phạm Văn C', 'email' => 'vanc@example.com', 'class' => 'CNTT1', 'age' => 19], ]); }

Sau đó, chạy lệnh:

php artisan db:seed --class=StudentSeeder

Kết quả: bảng students sẽ được thêm dữ liệu mẫu giúp bạn test ứng dụng mà không cần nhập thủ công.


4. Làm việc với DB – Thao tác dữ liệu sinh viên

Laravel cung cấp nhiều cách để thao tác dữ liệu: Query Builder, Eloquent ORM, hoặc DB facade. Trong ví dụ này, chúng ta sẽ sử dụng Eloquent ORM – cách làm phổ biến và dễ hiểu nhất.

4.1. Tạo model Student

Chạy lệnh:

php artisan make:model Student

Model này tương ứng với bảng students. Mở file app/Models/Student.php và đảm bảo nội dung:

class Student extends Model { protected $fillable = ['name', 'email', 'class', 'age']; }

4.2. Truy vấn dữ liệu trong Controller

Tạo controller bằng lệnh:

php artisan make:controller StudentController

Thêm logic hiển thị danh sách sinh viên:

public function index() { $students = Student::all(); return view('students.index', compact('students')); }

Laravel sẽ tự động lấy tất cả dữ liệu trong bảng students và truyền đến view students/index.blade.php.


5. Tạo View – Hiển thị danh sách sinh viên

View trong Laravel sử dụng Blade Template Engine, cho phép bạn viết mã HTML kết hợp cú pháp PHP một cách gọn gàng.

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

<!DOCTYPE html> <html> <head> <title>Quản lý sinh viên</title> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css"> </head> <body> <div class="container mt-4"> <h2 class="mb-3 text-center">Danh sách sinh viên</h2> <table class="table table-bordered"> <thead> <tr> <th>ID</th> <th>Họ và tên</th> <th>Email</th> <th>Lớp</th> <th>Tuổi</th> </tr> </thead> <tbody> @foreach ($students as $student) <tr> <td>{{ $student->id }}</td> <td>{{ $student->name }}</td> <td>{{ $student->email }}</td> <td>{{ $student->class }}</td> <td>{{ $student->age }}</td> </tr> @endforeach </tbody> </table> </div> </body> </html>

View này sẽ hiển thị danh sách sinh viên theo bảng dữ liệu Bootstrap, giúp giao diện gọn gàng, dễ nhìn.


6. Tạo Route – Liên kết giữa Controller và View

Cuối cùng, chúng ta cần định tuyến (route) để Laravel biết đường dẫn nào sẽ hiển thị danh sách sinh viên.

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

use App\Http\Controllers\StudentController; Route::get('/sinh-vien', [StudentController::class, 'index']);

Giờ đây, khi truy cập http://localhost:8000/sinh-vien, bạn sẽ thấy danh sách sinh viên được hiển thị đầy đủ.


7. Nâng cao – Thêm tính năng thêm mới và tìm kiếm sinh viên

Để ứng dụng thực tế hơn, bạn có thể bổ sung các tính năng sau:

7.1. Thêm sinh viên mới

Tạo form thêm sinh viên trong create.blade.php và xử lý logic trong StudentController@store bằng lệnh:

php artisan make:request StudentRequest

Sau đó validate dữ liệu và lưu vào DB bằng $student->save().

7.2. Tìm kiếm sinh viên theo tên hoặc lớp

Trong StudentController thêm logic tìm kiếm:

public function search(Request $request) { $keyword = $request->input('keyword'); $students = Student::where('name', 'like', "%$keyword%") ->orWhere('class', 'like', "%$keyword%") ->get(); return view('students.index', compact('students')); }

Thêm form tìm kiếm trong view để người dùng nhập từ khóa.
Như vậy, bạn đã có một ứng dụng quản lý sinh viên hoàn chỉnh với các tính năng cơ bản.


8. Những lưu ý khi làm việc với View, Migration, Seeder, và DB trong Laravel

  • Luôn chạy php artisan migrate:fresh --seed khi muốn làm mới toàn bộ dữ liệu.

  • Đặt tên bảng, cột, file migration rõ ràng và có ý nghĩa.

  • Sử dụng Eloquent thay vì query SQL thủ công để giữ mã dễ bảo trì.

  • Tách riêng layout (header, footer) để tái sử dụng giữa các trang.

  • Khi dự án lớn, nên sử dụng Repository Pattern để tách logic dữ liệu khỏi controller.


Kết luận

Qua bài hướng dẫn này, bạn đã nắm được cách sử dụng View, Migration, Seeder, và DB trong Laravel thông qua ví dụ cụ thể: xây dựng ứng dụng quản lý sinh viên. Từ việc tạo bảng, thêm dữ liệu mẫu, truy vấn thông tin đến hiển thị trên giao diện – mọi quy trình đều được Laravel hỗ trợ mạnh mẽ và tự động hóa cao.

Khi bạn hiểu và thành thạo các thành phần này, việc phát triển các dự án thực tế như website quản lý học sinh, hệ thống điểm danh, hay cổng thông tin sinh viên sẽ trở nên đơn giản hơn rất nhiều.

Nếu bạn đang theo học Laravel, hãy tiếp tục khám phá thêm các chủ đề như Route nâng cao, Blade Layout, Eloquent Relationship, và Authentication – những kiến thức sẽ giúp bạn tiến xa hơn trong hành trình trở thành lập trình viên web chuyên nghiệp.

👉 Hãy bắt tay ngay vào thực hành với dự án nhỏ để biến kiến thức hôm nay thành kỹ năng thực tế – đó chính là cách học Laravel hiệu quả nhất!

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 đó