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] Lập trình Laravel - Truyền dữ liệu từ Controller qua View - Ví dụ Hello World trong Laravel Phần 1

Lập trình Laravel - Truyền dữ liệu từ Controller qua View - Ví dụ Hello World trong Laravel Phần 1


Mở bài

Laravel là một trong những framework PHP mạnh mẽ và phổ biến nhất hiện nay, được hàng triệu lập trình viên trên toàn thế giới tin dùng. Điểm nổi bật của Laravel không chỉ ở cấu trúc gọn gàng, dễ bảo trì mà còn ở cách nó giúp developer viết code “thanh thoát”, dễ hiểu và cực kỳ logic. Trong hành trình học lập trình Laravel, một trong những bước cơ bản và quan trọng nhất chính là hiểu cách truyền dữ liệu từ Controller sang View — bước nền tảng để xây dựng bất kỳ ứng dụng web động nào.

Nếu bạn mới bắt đầu, có thể đang băn khoăn: “Làm sao để gửi dữ liệu từ Controller ra View?”, “Cơ chế hoạt động của Route - Controller - View trong Laravel như thế nào?”. Đừng lo! Trong bài viết này, chúng ta sẽ cùng nhau khám phá từng bước một cách chi tiết, qua ví dụ thực tế “Hello World” – một trong những bài học kinh điển nhưng cực kỳ hữu ích.

Bài viết không chỉ giúp bạn hiểu rõ cách truyền dữ liệu từ Controller qua View trong Laravel, mà còn giúp bạn nắm chắc luồng xử lý MVC (Model – View – Controller) của Laravel, qua đó tạo nền tảng vững chắc để phát triển các ứng dụng web chuyên nghiệp hơn ở các phần sau.

Giới thiệu tổng quan về mô hình MVC trong Laravel

Trước khi đi sâu vào phần truyền dữ liệu, chúng ta cần hiểu Laravel hoạt động dựa trên mô hình MVC. Đây là kiến trúc chuẩn được áp dụng trong hầu hết các framework web hiện đại.

  • Model (M): Là nơi xử lý dữ liệu và tương tác với cơ sở dữ liệu (Database).

  • View (V): Là phần giao diện hiển thị cho người dùng.

  • Controller (C): Là “cầu nối” trung gian giữa Model và View, nơi xử lý logic của ứng dụng.

Cụ thể hơn, khi người dùng truy cập vào một URL trên trình duyệt:

  1. Route tiếp nhận yêu cầu (request).

  2. Controller xử lý logic, lấy dữ liệu (từ Model hoặc tự tạo).

  3. View hiển thị dữ liệu đó ra giao diện cho người dùng.

Laravel giúp quá trình này trở nên cực kỳ dễ dàng, gọn gàng và rõ ràng. Giờ hãy bắt đầu với ví dụ đầu tiên — Hello World.

Tạo Route cơ bản trong Laravel

Đầu tiên, hãy mở file routes/web.php trong dự án Laravel của bạn. Đây là nơi khai báo tất cả các route dành cho giao diện web.

Ví dụ đơn giản nhất để hiển thị “Hello World” mà không cần Controller:

// routes/web.php use Illuminate\Support\Facades\Route; Route::get('/hello', function () { return "Hello World from Laravel!"; });

Giải thích:

  • Route::get('/hello', ...) nghĩa là khi người dùng truy cập vào đường dẫn http://localhost:8000/hello, Laravel sẽ thực thi đoạn code bên trong.

  • Lúc này, Laravel trả về trực tiếp chuỗi "Hello World from Laravel!" ra trình duyệt.

Tuy nhiên, trong thực tế, ta hiếm khi viết logic trực tiếp trong file route. Thay vào đó, ta sẽ tách riêng phần xử lý sang Controller — giúp code dễ bảo trì, mở rộng và tái sử dụng.

Tạo Controller để xử lý logic

Laravel cho phép bạn tạo Controller cực kỳ dễ dàng bằng artisan command. Mở terminal và chạy lệnh sau:

php artisan make:controller HelloController

Sau khi chạy, Laravel sẽ tạo file HelloController.php trong thư mục app/Http/Controllers/.

Mở file này, bạn sẽ thấy cấu trúc như sau:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class HelloController extends Controller { public function index() { $message = "Hello World from Controller!"; return view('hello', compact('message')); } }

Giải thích:

  • $message là biến chứa dữ liệu bạn muốn truyền sang View.

  • Hàm view('hello', compact('message')) dùng để hiển thị view có tên hello.blade.php và truyền biến $message sang đó.

  • compact('message') là cú pháp PHP giúp tạo mảng dạng ['message' => $message].

Tạo View để hiển thị dữ liệu

Giờ chúng ta sẽ tạo file view để hiển thị nội dung từ Controller.
Tạo file mới: resources/views/hello.blade.php.

Nội dung:

<!DOCTYPE html> <html> <head> <title>Hello Laravel</title> </head> <body> <h1>{{ $message }}</h1> </body> </html>

Giải thích:

  • {{ $message }} là cú pháp Blade template trong Laravel dùng để hiển thị dữ liệu từ Controller.

  • Khi người dùng truy cập /hello, Laravel sẽ gửi $message sang view này và hiển thị nội dung ra màn hình.

Liên kết Route với Controller

Tiếp theo, quay lại file routes/web.php, cập nhật route để gọi đến Controller vừa tạo:

use App\Http\Controllers\HelloController; Route::get('/hello', [HelloController::class, 'index']);

Giờ hãy chạy server:

php artisan serve

Truy cập địa chỉ:
👉 http://localhost:8000/hello

Kết quả: Màn hình hiển thị “Hello World from Controller!” — chứng tỏ dữ liệu đã được truyền thành công từ Controller qua View.

Các cách truyền dữ liệu khác từ Controller sang View

Laravel hỗ trợ nhiều cách khác nhau để truyền dữ liệu từ Controller sang View, giúp bạn linh hoạt trong từng tình huống thực tế.

1. Sử dụng mảng thông thường

return view('hello', ['message' => 'Hello World from Array!']);

2. Sử dụng phương thức with()

return view('hello')->with('message', 'Hello World using with()!');

3. Truyền nhiều biến cùng lúc

$data = [ 'title' => 'Trang Hello Laravel', 'message' => 'Chào mừng bạn đến với Laravel!' ]; return view('hello', $data);

Mỗi cách đều cho ra cùng một kết quả, tuy nhiên cách dùng compact() thường được ưa chuộng vì ngắn gọn và dễ đọc.

Ví dụ nâng cao: Gửi danh sách sinh viên từ Controller sang View

Giả sử bạn muốn hiển thị danh sách sinh viên, ta có thể làm như sau:

Controller:

public function studentList() { $students = ['Nguyễn Văn A', 'Trần Thị B', 'Lê Văn C']; return view('students', compact('students')); }

View (students.blade.php):

<!DOCTYPE html> <html> <head> <title>Danh sách sinh viên</title> </head> <body> <h2>Danh sách sinh viên</h2> <ul> @foreach($students as $student) <li>{{ $student }}</li> @endforeach </ul> </body> </html>

Khi truy cập route /students, Laravel sẽ hiển thị danh sách sinh viên được truyền từ Controller sang View.

Một số lỗi thường gặp và cách khắc phục

1. View không tồn tại

Thông báo lỗi:

View [hello] not found.

👉 Nguyên nhân: File hello.blade.php chưa được tạo hoặc đặt sai vị trí.
✅ Giải pháp: Kiểm tra lại thư mục resources/views/.

2. Undefined variable

Thông báo lỗi:

Undefined variable: message

👉 Nguyên nhân: Chưa truyền biến $message từ Controller sang View.
✅ Giải pháp: Đảm bảo bạn có compact('message') hoặc truyền mảng đúng cú pháp.

3. Lỗi khi không khai báo namespace đúng

Khi route không nhận Controller, hãy chắc chắn rằng bạn đã use App\Http\Controllers\TênController; ở đầu file web.php.

Lời khuyên khi làm việc với Route - Controller - View

  • Giữ code sạch: Không nên viết logic xử lý trong Route, hãy tách riêng vào Controller.

  • Đặt tên có ý nghĩa: Route, Controller, View nên được đặt tên rõ ràng để dễ bảo trì.

  • Tận dụng Blade template: Giúp View dễ đọc, có thể tái sử dụng layout.

  • Kiểm tra dữ liệu trước khi render: Đảm bảo không để biến rỗng hoặc lỗi cú pháp.

Những thói quen nhỏ này sẽ giúp bạn làm việc với Laravel hiệu quả hơn rất nhiều.

Kết luận

Qua bài viết này, bạn đã nắm rõ cách truyền dữ liệu từ Controller qua View trong Laravel – bước đầu tiên trong hành trình làm chủ framework này. Từ ví dụ cơ bản Hello World cho đến việc hiển thị danh sách sinh viên, bạn đã thấy cách Laravel giúp việc giao tiếp giữa Route, Controller và View trở nên mượt mà, dễ hiểu và linh hoạt.

Hãy nhớ rằng, nắm vững cơ chế này chính là nền tảng để bạn tiếp tục học các phần quan trọng hơn như Model, Eloquent ORM, Form Request hay Authentication.

Nếu bạn cảm thấy bài viết hữu ích, đừng ngần ngại chia sẻ cho bạn bè cùng học nhé. Ở phần 2, chúng ta sẽ tiếp tục tìm hiểu cách xử lý dữ liệu từ form và gửi ngược về Controller trong Laravel — một kỹ năng không thể thiếu khi phát triển ứng dụng thực tế!

👉 Hãy theo dõi ngay để không bỏ lỡ!




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

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

×