CHIA SẺ KIẾN THỨC

Sau nhiều dự án thực tế, chúng tôi note lại những kiến thức bổ ích nhất cho mọi người.

Laravel – Tổng hợp mô hình MVC : Model – Contronller – View – Part 1

Đăng ký: 2021.01.14 | Chuyên mục: Laravel

I/ Mô hình MVC trong laravel là gì, gồm những phần nào, luồng xử lý như thế nào:

 

Cách thức hoạt động MVC trong Laravel

– Mô hình MVC là mô hình 3 lớp gồm Model – View – Controller mỗi phần chịu trách nhiệm tách biệt thuận tiện cho việc xử lý và bảo trì.

+ Model: chịu trách nhiệm quản lý dữ liệu, là nơi lưu trữ & truy xuất dữ liệu từ cơ sở dữ liệu như mysql, sql server,…

+ View: chịu trách nhiệm hiển thị dữ liệu đã được truy xuất từ model theo một format nào đó theo ý đồ của lập trình viên.

+ Controller: chịu trách nhiệm xử lý các request từ client, sau khi nhận request từ client thì thực thi các lệnh hay các truy xuất từ model sau đó nó trả dữ liệu lấy được model gửi về view ( client ).

Ví dụ:

Phía Client (xem như một người đi vào quán nước order món nước nào đó ví dụ là Nước chanh ) => thông qua phương thức giao tiếp trực tiếp nhân viên order (Nhân viên order ở đây xem như một controller) => Nhân viên Order tiếp nhận thông tin với một cách thức liên hệ nào đó đưa phiếu order qua Nhân viên pha chế ( Model ) sau khi pha chế xong => Nhân viên order biết được  nơi mà món nước khách gọi nằm ở bàn nào thì đưa qua người phục vụ bưng nước mang tới người dùng.(Controller => View).

 

II/ Route là gì:

Tài liệu xem tại đây

– Route trong mô hình laravel là định ra các request (url) định sẵn và có các action (hành động) do chúng ta định nghĩa.

– Các loại Route trong Laravel:
Route::get nhận resquest với phương thức GET.
Route::post nhận resquest với phương thức POST.
Route::put nhận resquest với phương thức PUT.
Route::delete nhận resquest với phương thức DELETE.
Route::match kết hợp nhiều phương phức như POST,GET,PUT,..
Route::any nhận tất cả các phương thức.
Route::group tạo ra các nhóm route.
Route::controller gọi đến controller tương ứng mà chúng ta tự định.
Route::resource sử dụng với resource controller.

– Trong Laravel định nghĩa route có cấu trúc như sau:

+ <method>: Các phương thức cơ bản như post, get, put, delete, any…
+ <URI>: Đường dẫn route.
+ <callback function>: Hành động nào đó sẽ được thực hiện.

Ví dụ:

+ <method>: Với phương thức là GET
+ <URI>: Với đường dẫn là / tới home (http://127.0.0.1:8000/home)
+ <callback function>: Tìm tới Controller có file HomeController cới phương thức có tên index: bên trong phương thức index nó sẽ thực hiện các hành động mà do ta định nghĩa chúng.

 

– Tham số trong Route:

 

– Định danh cho Route:

+ Các định tuyến cho phép đặt tên để thuận tiện cho các URL hoặc chuyển hướng cho các định tuyến cụ thể. Ta có thể chỉ định một tên cho định tuyến bằng cách sử dụng khóa as khi tạo định tuyến:

+ Tạo url từ định tuyến đã đặt tên: Khi một một định tuyến đã được đặt tên, ta có thể sử dụng tên định tuyến đó để tạo url hoặc chuyển hướng url thông qua hàm route:

 

– Nhóm Route:

+ Nhóm Route cho phép ta chia sẻ các thuộc tính như middleware hay namespaces, trên nhiều Route mà không cần phải xác định lại chúng trên mỗi định tuyến riêng. Các thuộc tính chung được quy định trong một mảng định dạng là tham số đầu tiên của phương thức Route::group.

+ Middleware: Để gán middleware cho một nhóm, ta dụng khóa middleware trong mảng thuộc tính. Middleware sẽ được thực hiện theo thứ tự ta định nghĩa mảng này:

 

+ Namespaces: Một trường hợp sử dụng chung cho nhóm định tuyến là namespaces được chỉ định với một nhóm của bộ điều khiển.

 

– Route Prefix:

+ Phương thức prefix này giúp ta đặt tiền tố cho mỗi định tuyến với một url nhất định.
+ Ví dụ: bạn có thể muốn thêm tiền tố tất cả các URI định tuyến trong nhóm với admin:

 

III/ Cách tạo view trong laravel

– Có hai cách tạo: cách tạo bằng tay – cách tạo bằng lệnh

+ Cách lệnh bằng tay: Vào trong folder resources > views tạo file nameFile.blade.php
++ nameFile : là tên file bạn muốn đặt
++ .blade.php : là đuôi file mà laravel đã quy định.

+ Cách tạo bằng lệnh:

Để mà dùng được lệnh ta phải tạo Commands: MakeView

Nội dung code logic tạo view:

Khai báo đoạn code vào file Kernel:

– Các CSS, JQUERY, BOOTRAP, IMAGES: được đặt ở thư mục public

Cách chèn các đường dẫn như css, js,.. được bỏ vào {{ asset(‘url’) }} or {{ url(‘url’) }} : các cặp lệnh này cho phép trỏ đường dẫn lấy luôn cái domain.

 

IV/ Controller là gì?

Tài liệu xem thêm tại đây.

– Controller: chịu trách nhiệm xử lý các request từ client, sau khi nhận request từ client thì thực thi các lệnh hay các truy xuất từ model sau đó nó trả dữ liệu lấy được model gửi về view ( client ).

Tạo controller trong Laravel.

– Controller phải được đặt trong đường dẫn App\Http\controllers
– Tên của controller phải giống với tên class trong file controller đó.
– Class controller (do bạn tạo) phải extends(kế thừa) từ Controller (chú ý chữ C phải viết hoa).

Cách 1: Tạo bằng tay.

-Chúng ta có thể tạo một file controller bằng tay hoặc bằng cmd thuần trong đường dẫn App\Http\Controllers. Và để sử dụng được controller đó thì bắt buộc các bạn phải tuân thủ 3 điều kiện phía trên nhé.

-Ví dụ: mình tạo một Homecontroller.php trong App\Http\Controllers thì trong file sẽ có nội dung như sau:

Cách 2:  Tạo bằng lệnh laravel cung cấp sẵn.

Ví dụ: Tạo một controllers home controller và một hàm là index.

Và chúng ta sẽ tạo một route để gọi đến action đó

 

– Truyền tham số trong action Controllers:

 

V/ Database: thiết lập, truy vấn …

– Kết nối data Laravel : Ở đây ta chú ý tới file cấu hình .env

=> Ta chú ý tới đoạn code trên, thiết lập db_name, db_user, db_pass.

Sau khi thiết lặp xong ta tiến hành chạy lệnh xóa case để không còn lưu cái trước đó.

– Truy xuất các câu lệnh bằng QueryBuild trong laravel được viết ở file Model:

– Xử lý khi truy xuất dữ liệu từ Model sang Controller:

+ Ví dụ phần Update được xử lý ngoài Controller như sau:

 

– Eloquent – Mode: Đọc thêm tại đây

+ Hãy khai báo hàm trong mode để liên kết tới bảng trong mysql (If your model’s corresponding database table does not fit this convention, you may manually specify the model’s table name by defining a table property on the model)

+ Truy xuất dữ liệu: 

=> Phương thức all() : cho phép ta truy xuất được tất cả dữ liệu trong bảng.

hoặc

Áp dụng vào trong Model Sản phẩm để tạo các hàm tạo mới, cập nhật, xóa sản phẩm:

=> Sau đó ngoài file Controller ta sẽ truy vấn những hàm ta đã tạo sẵn ở mode:

=> Xử lí xuất dữ liệu ra View:

 

Leave a Reply

Your email address will not be published. Required fields are marked *

Trung Culi ( Co-Founder/ CEO )

Thích đi chơi mùa mưa

Thích ngủ lúc sáng sớm

Thích đã bóng cùng đồng bọn

Gia nhập FinchWeb Family

Con người là nhân tố quyết định sự phát triển bền vững và thịnh vượng của toàn thể công ty, dù bạn là ai có cùng suy nghĩ, hãy tham gia hợp tác cùng chúng tôi...

Tham gia ngay

KHÁCH HÀNG TIÊU BIỂU

Hơn 50.000 người kinh doanh và thương hiệu bậc nhất đang tin dùng các giải pháp công nghệ của chúng tôi.

  • bidv
  • google
  • vib
  • maritimebank
  • mb
  • mcredit