CodeStar Academy
  • Trang chủ
  • Khóa học
  • Lịch khai giảng
  • Blog
  • Liên hệ
  • Trang chủ
  • Khóa học
  • Lịch khai giảng
  • Blog
  • Liên hệ
CodeStar Academy > Uncategorized > Eloquent ORM

Eloquent ORM

  • Tháng Mười Một 18, 2020
  • Posted by: codestar
  • Category: Uncategorized
Không có phản hồi

1. Giới thiệu

Eloquent ORM cung cấp cho bạn khả năng làm việc với database một cách đơn giản và hiệu quả. Mỗi table sẽ có một Model tương ứng, cho phép bạn thực hiện các query với table đó.

2. Khởi tạo

Chúng ta có thể sử dụng artisan command để tạo Model một cách rất đơn giản, chúng ta sẽ cùng nhau tạo model Post cho table posts như sau:

php artisan make:model Post

hoặc

// option -m dùng để tạo luôn file migration
php artisan make:model Post - m

Mặc định thì các Model sẽ được đặt trong thư mục app:

Model được đặt trong thư mục app

3. Quy tắc cho Eloquent Model

Như ở trên thì chúng ta đã tạo model Post cho table trong database là posts. Chắc chắn bạn sẽ thắc mắc là tại sao model Post ở đây lại tương ứng với table posts trong database?

Theo defaul của Laravel, thì đã tự định nghĩa là: kiểu “snake case”, tên class ở số nhiều sẽ được sử dụng như tên table. Vì vậy mà model Post sẽ tương ứng với tên table là posts.

Vậy giờ ta lại muốn là model Post là đại diện cho bảng post_by_users thì Laravel có đáp ứng được ko? Câu trả lời ở đây là có. Trong Eloquent Model có cung cấp thuộc tính table để xác định tên table tương ứng với model đó:

Thuộc tính table trong model

4. Truy vấn với Model

Mỗi Eloquent Model cũng giống như 1 query builder, vì thế bạn có thể thực hiện query tới database 1 cách tương tự.

VD:
Lấy toàn bộ bản ghi trong table posts:

$posts = App\Post::all();

Thêm một vài ràng buộc:

$posts = App\Post::where('status', 1)
               ->orderBy('created_at', 'desc')
               ->get();

Sử dụng find hoặc first để lấy kết quả là một model instance

// Lấy 1 model theo khóa chính của nó...
$post = App\Flight::find(1);

// Lấy về model đầu tiên khớp với các điều kiện truy vấn...
$post = App\Post::where('status', 1)->first();

Các bạn có thể xem lại phần query builder để biết thêm những hàm có thể sử dụng.

5. Thêm và cập nhập model

Để thêm 1 record vào trong database, cần tạo mới 1 model instance và set giá trị cho các attributes, sau đó gọi hàm save:

$post = new Post;
$post->title = 'Kaopiz - Nhìn lại chặng đường 5 năm a';
$post->save();

kiểm tra database table posts, sẽ thấy có 1 record mới được thêm vào.

Hàm save cũng được sử dụng để update 1 record sẵn có trong database. Chỉ cần lấy model instance ra trước, rồi thay đổi các attribute mong muốn rồi cuối cùng là gọi hàm save.

$post = App\Flight::find(1);
$post->title = 'Kaopiz - Nhìn lại chặng đường 5 năm';
$post->save();

Để xóa record trong table, còn đơn giản hơn nữa:

$post = App\Flight::find(1);
$post->delete();

or

//Xóa bản ghi với các ràng buộc khác
$deletedRows = App\Post::where('status', 0)->delete();
//xóa record có id là 1
App\Post::destroy(1); 

Trên đây là toàn bộ các khái niệm cơ bản về Laravel Eloquen ORM, rất hi vọng bài viết sẽ mang lại nhiều hữu ích cho các bạn quan tâm.

Chúc các các bạn sẽ làm việc tốt với Eloquen ORM trong Laravel.

Trả lời Hủy

Về chúng tôi

CodeStar hướng đến việc mang lại những trải nghiệm mới cho Học viên trong mỗi buổi học thông qua việc tham gia vào các dự án tại CodeStar

Địa chỉ

Tầng 4, Tòa CT1, Bắc Hà C14, Tố Hữu, Trung Văn, Nam Từ Liêm, Hà Nội.

0367833933

[email protected]

Quick Links

Khóa học

Lịch khai giảng

Kênh Youtube

Liên hệ


Copyright © 2020. CodeStar

Search