
Trong Laravel, mô hình Eloquent cùng với kiến trúc MVC (Model-View-Controller) cung cấp một cách hiệu quả để xây dựng ứng dụng web. Dưới đây là cách hoạt động cơ bản của ba thành phần chính trong kiến trúc MVC:
1. Model (Mô Hình)
Model là thành phần đại diện cho dữ liệu của ứng dụng và thường tương tác với cơ sở dữ liệu. Trong Laravel, mô hình Eloquent được sử dụng để quản lý dữ liệu một cách dễ dàng và trực quan.
Tạo một Model:
Bạn có thể tạo một mô hình bằng cách sử dụng Artisan command:
php artisan make:model Post
Ngoài ra còn một số command tạo model khác, bạn có thể tham khảo bên dưới
# Tạo một model Flight cùng với một lớp factory. Lớp factory được sử dụng để tạo dữ liệu giả cho việc kiểm thử hoặc phát triển.
php artisan make:model Flight --factory
php artisan make:model Flight -f
# Tạo một model Flight cùng với một lớp seeder. Seeder được sử dụng để chèn dữ liệu mẫu vào cơ sở dữ liệu.
php artisan make:model Flight --seed
php artisan make:model Flight -s
# Tạo một model Flight cùng với một lớp controller. Controller được sử dụng để xử lý các yêu cầu HTTP và điều hướng đến các view hoặc thao tác với mô hình.
php artisan make:model Flight --controller
php artisan make:model Flight -c
# Tạo một model Flight, một lớp controller resource (controller với các phương thức chuẩn RESTful), và các lớp form request để xác thực dữ liệu đầu vào.
php artisan make:model Flight --controller --resource --requests
php artisan make:model Flight -crR
# Tạo một model Flight cùng với một lớp policy. Policy được sử dụng để xác định quyền truy cập cho các hành động trên mô hình.
php artisan make:model Flight --policy
# Tạo một model Flight, một migration (để tạo bảng trong cơ sở dữ liệu), một lớp factory, một lớp seeder, và một lớp controller.
# Đây là cách nhanh chóng để tạo tất cả các thành phần cơ bản cho một mô hình.
php artisan make:model Flight -mfsc
# Tạo một model Flight cùng với tất cả các thành phần liên quan bao gồm migration, factory, seeder, policy, controller, và form request.
# Đây là một cách tiện lợi để tạo tất cả các thành phần cơ bản và mở rộng cho một mô hình trong một lệnh duy nhất.
php artisan make:model Flight --all
# Tạo một model Member để sử dụng cho các bảng pivot trong các mối quan hệ nhiều-nhiều.
# Pivot model là các mô hình đặc biệt dùng để lưu trữ các mối quan hệ giữa hai mô hình khác.
php artisan make:model Member --pivot
php artisan make:model Member -p
Định nghĩa Model:
Mô hình Post
sẽ được lưu trữ trong thư mục app/Models
. Ví dụ về một mô hình cơ bản:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
// Tên bảng (nếu không theo quy ước tên bảng số nhiều)
protected $table = 'posts';
// Các thuộc tính có thể được gán đại chúng
protected $fillable = ['title', 'content'];
// set primary key
protected $primaryKey = 'flight_id';
/**
* Cho biết ID của model có tự động tăng hay không.
*/
public $incrementing = false;
}
Mô hình này đại diện cho bảng posts
trong cơ sở dữ liệu và có thể thực hiện các thao tác như truy vấn, thêm, sửa, xóa dữ liệu.
2. Controller (Bộ điều khiển)
Controller là thành phần xử lý logic ứng dụng và giao tiếp giữa mô hình và view. Nó nhận các yêu cầu từ người dùng, thao tác với mô hình và trả về dữ liệu cho view.
Tạo một Controller:
Sử dụng Artisan command để tạo một controller mới:
php artisan make:controller PostController
Định nghĩa Controller:
Bên trong controller, bạn có thể định nghĩa các phương thức để xử lý yêu cầu từ người dùng:
namespace App\Http\Controllers;
use App\Models\Post;
use Illuminate\Http\Request;
class PostController extends Controller
{
public function index()
{
// Lấy tất cả các bài viết từ cơ sở dữ liệu
$posts = Post::all();
// Trả về view với dữ liệu bài viết
return view('posts.index', compact('posts'));
}
public function show($id)
{
// Tìm bài viết theo ID
$post = Post::findOrFail($id);
// Trả về view với dữ liệu bài viết
return view('posts.show', compact('post'));
}
public function store(Request $request)
{
// Xác thực và tạo bài viết mới
$request->validate([
'title' => 'required',
'content' => 'required',
]);
Post::create($request->all());
return redirect()->route('posts.index');
}
}
3. View (Giao diện)
View là phần của ứng dụng chịu trách nhiệm hiển thị dữ liệu cho người dùng. Trong Laravel, các view thường được lưu trữ trong thư mục resources/views
và được viết bằng Blade, một engine template của Laravel.
Tạo View:
Tạo các file Blade trong thư mục resources/views/posts
để hiển thị dữ liệu:
-
index.blade.php
: Hiển thị danh sách tất cả các bài viết<!DOCTYPE html> <html> <head> <title>Danh sách bài viết</title> </head> <body> <h1>Danh sách bài viết</h1> <ul> @foreach($posts as $post) <li><a href="{{ route('posts.show', $post->id) }}">{{ $post->title }}</a></li> @endforeach </ul> </body> </html>
show.blade.php
: Hiển thị chi tiết một bài viết
<!DOCTYPE html> <html> <head> <title>{{ $post->title }}</title> </head> <body> <h1>{{ $post->title }}</h1> <p>{{ $post->content }}</p> <a href="{{ route('posts.index') }}">Trở lại danh sách</a> </body> </html>
Tổng Quan
- Model (Mô Hình) quản lý dữ liệu và tương tác với cơ sở dữ liệu.
- Controller (Bộ điều khiển) xử lý logic và điều hướng giữa mô hình và giao diện.
- View (Giao diện) hiển thị dữ liệu cho người dùng.
Sử dụng kiến trúc MVC trong Laravel giúp phân chia rõ ràng giữa các phần của ứng dụng, làm cho việc phát triển và bảo trì dễ dàng hơn.
Danh mục
Bài viết liên quan

Quản Lý Thời Gian Tự Động Trong Eloquent
Author: | ADMIN |
---|

Các Mối Quan Hệ Trong Eloquent
Author: | ADMIN |
---|

Eager Loading
Author: | ADMIN |
---|

Database: Seeding
Author: | ADMIN |
---|
Bài viết khác

Blade Basics
Author: | ADMIN |
---|

9 Mẹo Hữu Ích Khi Sử Dụng Blade Trong Laravel
Author: | ADMIN |
---|

Hiển thị giá trị trong Blade
Author: | ADMIN |
---|