Mô hình MVC (model, controller, view) là mô hình chuẩn cho ứng dụng web được sử dụng nhiều nhất ngày nay

1. MVC là gì?

Mô hình MVC là viết tắt của 3 chữ Model, View, Controller. Mô hình này tách một ứng dụng web ra làm 3 thành phần đảm nhiệm chức năng 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, nó lưu trữ và truy xuất các thực thể từ cơ sở dữ liệu như mysql, sql server, postresSQL,… đồng thời chưa các logic được thực thi bởi ứng dụng

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. Cách sử dụng của View tương tự như các module templates thường thấy trong các ứng dụng web phổ biến như WordPress, Joomla,…

Controller : trung gian, làm nhiệm vụ xử lý cho model và view tương tác với nhau. Controller nhận request từ client, sau đó gọi các model để thực hiện các hoạt động được yêu cầu và gửi ra ngoài View. View sẽ chịu trách nhiệm format lại data từ controller gửi ra và trình bày dữ liệu theo 1 định dạng đầu ra (html).

2. MVC trong Laravel

Trong Laravel, mô hình này có sơ đồ như sau:

mvc trong laravel
mvc trong laravel

Laravel Framework hỗ trợ lập trình theo mô hình MVC khá mạnh mẽ.
Ngoài các thành phần chính Model, View, Controller thì Routes được sử dụng định tuyến người dùng theo đúng Urls.

Ở đây, mọi Request từ phía người dùng đều phải qua Route, dữ liệu được gửi xuống Controller để xử lý, cần dữ liệu sẽ lấy từ Model lên hoặc cập nhật dữ liệu xuống Model, kết quả gửi ra View cho người sử dụng.

Cách thức hoạt động MVC trong Laravel như hình:

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

User tạo ra một yêu cầu với URL dựa trên ứng dụng.

Xác định “route” tương ứng với URL của user, chuyển tới controller tương ứng.

Controller xử lý nghiệp vụ, nếu cần thiết thì truy vấn dữ liệu từ model và trả thông tin cho View

View cung cấp thông tin trả về cho user

3. Ví dụ:

Ta lấy một ví dụ đơn giản về mô hình này bằng việc lấy toàn bộ danh sách Users cho người dùng. Lưu ý: Đây chỉ là ví dụ dạng mô hình để các bạn hiểu rõ hơn về mô hình MVC trong Laravel.

3.1. Route

Route::get('listusers', '[email protected]);

3.2. Model

Protected $table = "users";

3.3. Controller

public function list(){
	$users = users::all();
	Return view('listusers', ['users'=>$users]);
}

3.4. View

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Demo ListUsers</title>
</head>
<body>
	<h1>Danh sách thành viên</h1>
	<table>
		<tr>
			<th>Họ và tên</th>
			<th>Email</th>
		</tr>
		@foreach($users as $user)
			<tr>
				<td> {{$user->name}} </td>
				<td> {{$user->name}} </td>
			</tr>
		@endforeach
	</table>
</body>
</html>

BÌNH LUẬN

Vui lòng nhập bình luận của bạn!
Vui lòng nhập tên của bạn ở đây