Bài 3 : Laravel 5: Routes , Controllers, Views

Tiếp tục chuỗi seri học Laravel 5, bài hôm nay mình tiếp tục giới thiệu với các bạn về Routes, Controllers, Views trong Laravel 5. Nếu các bạn đã làm quen với Laravel 4 thì các khái niệm này không còn lạ lẫm gì nữa, về cơ bản thì Routes, Controllers, Views ở Laravel 5 không khác gì so với Laravel 4, có khác ở đây chỉ là cấu trúc sắp xếp thư mục.
Sau khi đã cài đặt xong laravel 5, thư mục app của chúng ta sẽ có cấu trúc như sau :
laravel-5-app
cấu trúc thư mục app trong laravel 5
Nếu để ý, các bạn sẽ thấy folder Controllers trong Laravel 5 sẽ nằm trong thư mục Http cùng cấp với file routes.php. Ngoài ra các vị trí và cấu trúc folder khá là khác so với Laravel 4. Nhưng các bạn đừng quá bận tâm về điều này, vì theo nghiên cứu của mình thì về bản chất routing, views, controllers vẫn không thay đổi nhiều. Những điều khác biệt thì chúng ta đi sâu hơn vào các bài tới sẽ nắm kĩ hơn.
Vào vấn đề chính nào. Let’s go !

Routes, Controllers, View trong Laravel 5

1. Routes

Định nghĩa mối quan hệ giữa các đường dẫn (url), các liên kết (link) . Khi một liên kết được tạo ra bằng cách sử dụng tên của routes, thì một định danh liên kết thống nhất sẽ được tạo ra bởi laravel. (xem lại bài giới thiệu về Laravel)
Nói nôm na ở đây chúng ta có thể hiểu đơn giản thì routes chính là 1 cách để bạn viết lại đường dẫn của ứng dụng (giống như htaccess trong các website truyền thống) và laravel có thể hiểu được cách viết này và sử dụng nó để gọi các đối tượng, phương thức cần thiết.
Routes trong laravel được quy định trong file app -> Http -> routes.php
Mở file này lên bạn sẽ thấy đoạn mã như sau :

2. Controllers

Thay vì định nghĩa tất cả các yêu cầu trong 1 file routes.php, thì Controller tổ chức nhóm tất cả các logic này trong class Controller để tiện xử lý. Vị trí của Controller là app/Http/Controllers
Quay lại đoạn mã ở trên
Điều này mang ý nghĩa là khi người dùng truy cập vào đường dẫn
thì Laravel sẽ gọi tới Controller có tên là WelcomeController (nằm trong app -> Http -> Controllers -> WelcomeController.php),  với phương thức là index (ngăn cách giữa controller và phương thức của nó là dấu @).

3. Views

Views chứa các mã html dùng để hiển thị nội dung được chỉ định bởi Controllers, vị trí của View trong ứng dụng Laravel là  resources/views
Tiếp tục mục 2. phương thức index trong controller WelcomeController này sẽ tiếp tục gọi View là welcome
File view welcome này nằm trong thư mục resources -> views -> welcome.blade.php, chịu trách nhiệm hiển thị ra nội dung theo chủ ý của controller, mà ở đây chính là nội dung bạn thấy như dưới đây khi cài đặt xong Laravel ở bài trước:
cài đặt laravel 5
view hiển thị dữ liệu từ WelcomeController.php

4.Các ví dụ

Ví dụ a :

Trong ví dụ này, chúng ta sẽ edit lại file routes.php và thêm 1 đoạn mã như sau:
Trong file WelcomeController.php, ta thêm function gọi là contact()
Giờ thì các bạn vào trình duyệt, gõ địa chỉ :
sẽ thấy nội dung :
Rất dễ hiểu đúng không nào, quy trình là Routes gọi phương thức của Controllers, hiển thị ra Views.
Ví dụ b :
Trong thư mục views, các bạn tạo 1 folder tên pages và tạo 2 file đặt tên là contact.php và about.php, nội dung của 2 file này đơn giản lần lượt như sau :
contact.php
about.php
Tiếp đến trong file routes.php bạn thêm 1 đoạn route mới dành cho trang about như sau :
Trong file WelcomeController.php, bạn sửa lại function contact() 1 chút như sau :
và thêm 1 function mới tên là about() dành để gọi view about
Tiếp đến, vào trình duyệt gõ lần lượt 2 địa chỉ như sau :
sẽ có các kết quả lần lượt là :
Thật đơn giản đúng không nào, từ ví dụ trên, các bạn sẽ để ý thấy là khi ta đặt các file contact.php, about.php trong 1 thư mục là pages, thì các phương thức contact(), about() trong WelcomeController sẽ gọi các view contact.php, about.php từ thư mục pages và vào trong bằng dấu chấm (.). Bạn có thể thay thế dấu chấm (.) bằng dấu cách (/) như dưới đây đều được :

Nguồn: http://kungfuphp.com/

Comments

Popular Posts