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] Quản lý sinh viên bằng Laravel - Lập trình Laravel

Mở bài

Trong hành trình học lập trình web với Laravel, việc xây dựng một ứng dụng quản lý sinh viên là một trong những bài tập thực tế giúp bạn hiểu sâu hơn về cách route, controller, view, sessionCRUD (Create - Read - Update - Delete) hoạt động. Đây không chỉ là một ví dụ cơ bản, mà còn là nền tảng cho các ứng dụng quản lý phức tạp hơn sau này như quản lý sản phẩm, khách hàng, hoặc nhân viên.

Laravel được đánh giá là framework PHP mạnh mẽ, dễ học và linh hoạt. Nhờ cấu trúc rõ ràng theo mô hình MVC (Model - View - Controller), lập trình viên có thể dễ dàng tổ chức và mở rộng mã nguồn. Trong bài viết này, chúng ta sẽ cùng nhau xây dựng một ứng dụng quản lý sinh viên trong Laravel, hỗ trợ các chức năng thêm, sửa, xoá và hiển thị danh sách sinh viên, đồng thời lưu trữ dữ liệu tạm thời bằng session thay vì cơ sở dữ liệu — giúp bạn hiểu rõ cách dữ liệu di chuyển trong hệ thống Laravel.

Hãy cùng bắt đầu và từng bước tìm hiểu cách mà Laravel giúp bạn triển khai ứng dụng quản lý sinh viên một cách nhanh chóng, trực quan và chuyên nghiệp!

Tìm hiểu ý tưởng ứng dụng quản lý sinh viên

Trước khi đi sâu vào phần lập trình, hãy cùng xác định mục tiêu của ứng dụng:

  • Người dùng có thể thêm sinh viên mới (gồm họ tên, mã sinh viên, tuổi, lớp, địa chỉ).

  • Cho phép hiển thị danh sách sinh viên dưới dạng bảng.

  • Có thể chỉnh sửa thông tin sinh viên khi cần cập nhật.

  • Hỗ trợ xoá sinh viên khỏi danh sách.

  • Dữ liệu lưu trong session thay vì cơ sở dữ liệu (phù hợp với ứng dụng demo hoặc học tập).

Ứng dụng sẽ giúp bạn hiểu rõ hơn về:

  • Cách Laravel xử lý route để điều hướng người dùng.

  • Cách controller nhận dữ liệu từ form, xử lý logic và gửi lại dữ liệu ra view.

  • Cách session được dùng để lưu trữ tạm thời dữ liệu giữa các request.

Cấu trúc dự án Laravel

Khi khởi tạo một dự án mới, Laravel sẽ tự động tạo ra cấu trúc thư mục cơ bản:

app/ └── Http/ └── Controllers/ resources/ └── views/ routes/ └── web.php

Trong ứng dụng quản lý sinh viên, chúng ta sẽ tập trung vào 3 thành phần chính:

  1. Route (routes/web.php) – điều hướng các request.

  2. Controller (StudentController) – xử lý logic.

  3. View (Blade template) – hiển thị giao diện cho người dùng.

Tạo mới Controller cho sinh viên

Đầu tiên, mở Terminal và chạy lệnh:

php artisan make:controller StudentController

Laravel sẽ tự động tạo file app/Http/Controllers/StudentController.php.
Trong file này, chúng ta sẽ viết các hàm tương ứng với từng chức năng CRUD:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class StudentController extends Controller { public function index(Request $request) { $students = $request->session()->get('students', []); return view('students.index', compact('students')); } public function create() { return view('students.create'); } public function store(Request $request) { $students = $request->session()->get('students', []); $students[] = [ 'id' => uniqid(), 'name' => $request->name, 'age' => $request->age, 'class' => $request->class, 'address' => $request->address, ]; $request->session()->put('students', $students); return redirect()->route('students.index'); } public function edit($id, Request $request) { $students = $request->session()->get('students', []); $student = collect($students)->firstWhere('id', $id); return view('students.edit', compact('student')); } public function update(Request $request, $id) { $students = $request->session()->get('students', []); foreach ($students as &$student) { if ($student['id'] == $id) { $student['name'] = $request->name; $student['age'] = $request->age; $student['class'] = $request->class; $student['address'] = $request->address; break; } } $request->session()->put('students', $students); return redirect()->route('students.index'); } public function destroy($id, Request $request) { $students = $request->session()->get('students', []); $students = array_filter($students, fn($student) => $student['id'] != $id); $request->session()->put('students', $students); return redirect()->route('students.index'); } }

Khai báo route cho ứng dụng quản lý sinh viên

Tiếp theo, mở file routes/web.php và thêm:

use App\Http\Controllers\StudentController; Route::get('/students', [StudentController::class, 'index'])->name('students.index'); Route::get('/students/create', [StudentController::class, 'create'])->name('students.create'); Route::post('/students', [StudentController::class, 'store'])->name('students.store'); Route::get('/students/edit/{id}', [StudentController::class, 'edit'])->name('students.edit'); Route::post('/students/update/{id}', [StudentController::class, 'update'])->name('students.update'); Route::get('/students/delete/{id}', [StudentController::class, 'destroy'])->name('students.destroy');

Laravel sẽ điều hướng người dùng đến các hành động tương ứng trong StudentController.

Xây dựng giao diện hiển thị danh sách sinh viên (View)

Tạo thư mục resources/views/students/ và thêm file index.blade.php:

<!DOCTYPE html> <html> <head> <title>Danh sách sinh viên</title> </head> <body> <h1>Danh sách sinh viên</h1> <a href="{{ route('students.create') }}">➕ Thêm sinh viên mới</a> <table border="1" cellpadding="8"> <thead> <tr> <th>Họ tên</th> <th>Tuổi</th> <th>Lớp</th> <th>Địa chỉ</th> <th>Hành động</th> </tr> </thead> <tbody> @forelse($students as $student) <tr> <td>{{ $student['name'] }}</td> <td>{{ $student['age'] }}</td> <td>{{ $student['class'] }}</td> <td>{{ $student['address'] }}</td> <td> <a href="{{ route('students.edit', $student['id']) }}">✏️ Sửa</a> | <a href="{{ route('students.destroy', $student['id']) }}">🗑️ Xoá</a> </td> </tr> @empty <tr><td colspan="5">Chưa có sinh viên nào</td></tr> @endforelse </tbody> </table> </body> </html>

Form thêm sinh viên mới

Tạo file create.blade.php:

<h2>Thêm sinh viên mới</h2> <form method="POST" action="{{ route('students.store') }}"> @csrf <label>Họ tên:</label><input type="text" name="name" required><br> <label>Tuổi:</label><input type="number" name="age" required><br> <label>Lớp:</label><input type="text" name="class" required><br> <label>Địa chỉ:</label><input type="text" name="address" required><br> <button type="submit">Lưu</button> </form>

Form chỉnh sửa sinh viên

Tạo file edit.blade.php:

<h2>Chỉnh sửa thông tin sinh viên</h2> <form method="POST" action="{{ route('students.update', $student['id']) }}"> @csrf <label>Họ tên:</label><input type="text" name="name" value="{{ $student['name'] }}" required><br> <label>Tuổi:</label><input type="number" name="age" value="{{ $student['age'] }}" required><br> <label>Lớp:</label><input type="text" name="class" value="{{ $student['class'] }}" required><br> <label>Địa chỉ:</label><input type="text" name="address" value="{{ $student['address'] }}" required><br> <button type="submit">Cập nhật</button> </form>

Cách Laravel lưu trữ dữ liệu bằng session

Trong bài này, thay vì dùng cơ sở dữ liệu, chúng ta sử dụng session – nơi Laravel lưu dữ liệu tạm thời cho từng người dùng.

Laravel hỗ trợ các phương thức:

  • $request->session()->put('key', $value) – lưu giá trị.

  • $request->session()->get('key') – lấy giá trị.

  • $request->session()->forget('key') – xoá giá trị.

Điều này giúp bạn mô phỏng cơ sở dữ liệu một cách nhanh chóng mà không cần cấu hình MySQL.

Lợi ích khi sử dụng session thay vì database trong giai đoạn học tập

  • Dễ thử nghiệm: Không cần setup phức tạp.

  • Nhanh gọn: Không tốn thời gian cấu hình migration, model.

  • Hiểu rõ hơn: Bạn dễ quan sát luồng dữ liệu đi qua các lớp Controller → View.

  • Thích hợp cho demo, prototype hoặc bài giảng.

Tuy nhiên, hãy nhớ rằng session chỉ lưu tạm thời, dữ liệu sẽ mất khi session hết hạn hoặc server khởi động lại.
Khi làm ứng dụng thực tế, bạn nên chuyển sang sử dụng database với Eloquent ORM của Laravel.

Tổng kết

Qua bài hướng dẫn này, bạn đã nắm được:

  • Cách khởi tạo route, controller và view trong Laravel.

  • Cách truyền dữ liệu từ controller qua view bằng session.

  • Cách thực hiện CRUD cơ bản (thêm, sửa, xoá, hiển thị) mà không cần cơ sở dữ liệu.

  • Hiểu rõ cơ chế session và ứng dụng nó trong bài tập quản lý sinh viên.

Bài tập này là nền tảng tuyệt vời giúp bạn chuẩn bị cho các phần nâng cao hơn trong Laravel như:

  • Kết nối database bằng Eloquent ORM

  • Quản lý người dùng bằng Auth

  • Xây dựng giao diện với Blade Template Engine

Nếu bạn đang bắt đầu học Laravel, hãy thử tự mình nâng cấp ứng dụng này:
Thêm chức năng tìm kiếm, phân trang hoặc lưu vào database — đó chính là bước tiến vững chắc để trở thành một Laravel Developer chuyên nghiệp.

👉 Hãy tiếp tục theo dõi series “Lập trình Laravel từ cơ bản đến nâng cao” để không bỏ lỡ những bài thực hành tiếp theo!



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

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

×