Bài 7 : Sử dụng Eloquent trong Laravel 5

Tiếp theo bài viết trước nói về Migrations, hôm nay mình tiếp tục hướng dẫn các bạn về cách sử dụng Eloquent trong Laravel 5.  Trước khi bước vào học cách sử dụng Eloquent trong Laravel 5, thì chúng ta hãy tìm hiểu sơ lược về Eloquent cái đã.

Eloquent trong Laravel 5 là gì ?

Eloquent trong Laravel 5 chính là một ORM (Object-relational mapping), cung cấp các ActiveRecord đơn giản nhưng vô cùng chuyên nghiệp, giúp chúng ta làm việc với cơ sở dữ liệu thuận tiện hơn.
Hay nói 1 cách khác cho các bạn dễ hình dùng thì thế này. Như ở ví dụ trong bài trước, chúng ta có tạo bảng gọi là articles, dùng để chứa dữ liệu là các bài viết. Vậy thì chúng ta sẽ có thể đóan được các tương tác gì sẽ xảy ra với bảng articles này? Có phải chính là thêm, xóa, cập nhật và truy vấn đúng không nào? Và với Eloquent trong Laravel 5, nó đã xây dựng sẵn các phương thức để chúng ta làm điều đó, giúp cho việc sử dụng database trở nên dễ dàng hơn bao giờ hết.

Hướng dẫn sử dụng Eloquent trong Laravel 5

Để hiểu rõ về Eloquent, thì chúng ta hãy bắt tay vào nghiên cứu nó nào.
Trước khi sử dụng eloquent, thì chúng ta hãy nhìn lại một tí về bảng articles mà chúng ta đã tạo ở bài trước.
Vào trong phpmyadmin, bạn sẽ thấy bảng articles này bao gồm các cột như sau:
laravel 5, bảng articles
Tiếp đến, mình sẽ sử dụng php artisan tạo ra một lớp model gọi là Articles sẽ kế thừa class Eloquent model, nhằm thừa hưởng sức mạnh tương tác của lớp Eloquent này với database của chúng ta, mà ở đây chính là bảng articles.
Để tạo ra class Articles kế thừa class Eloquent, mình sẽ gõ lệnh sau :
và bạn sẽ nhận được thông báo tạo thành công như dưới đây:
articles eloquent
Đồng thời vào thư mục app của Laravel, bạn sẽ thấy một file model mới gọi là Articles.php có nội dung như sau:
Ở đoạn code chút xíu trên, rõ ràng là các bạn dễ dàng thấy được rằng class Articles kế thừa lớp Eloquent Model và cũng chỉ cần bao nhiêu dòng code như vậy thôi là đủ để bạn sử dụng sức mạnh ActiveRecord để thao tác thêm, xóa, sửa với bảng articles. Bạn có thể xem sơ qua lớp Model này để hiểu hơn bằng cách tìm file Model.php ở đường dẫn sau
. Mở file này lên bạn sẽ thấy các function đại loại như là find(), update(), save(),…đây chính là các phương thức đã được xây dựng sẵn giúp cho ta tương tác với database dễ dàng và hiệu quả hơn.
OK,giải thích thì dài dòng, trăm nghe không bằng thực hành (liên quan vãi :v), mình sẽ thử thao tác thêm, xóa, sửa bảng articles để các bạn hình dung nhé. Mình sẽ dùng php artisan tinker xuyên suốt quá trình demo cho các bạn, đây đơn giản chỉ là một tool của php artisan để giúp chúng ta tương tác với Laravel. (Bạn có thể xem đầy đủ các tính năng mà php artisan hỗ trợ bằng cách gõ lệnh php artisan ).
Vào vấn đề chính nào, bạn gõ dòng lệnh sau để bắt đầu sử dụng php artisan tinker
Gõ dòng lệnh trên xong, bạn sẽ thấy hiện ra như dưới đây là bạn đã vào chương trình của php artisan tinker
php artisan tinker
Tiếp đến, gõ thử tiếp vài dòng lệnh để làm quen với php artisan tinker nào. Gõ tiếp như dưới đây
bạn sẽ thông báo trả về là ‘Hieu’, điều này có nghĩa là biến $name đã lưu giá trị ‘Hieu’. Không tin các bạn thử gõ tiếp lệnh này để xem giá trị của biến $name.
Bạn sẽ thấy kết quả trả về là ‘Hieu’.
Trên đây chỉ là demo cho các bạn nắm được cách tương tác của php artisan tinker đối với ứng dụng Laravel của chúng ta.
Giờ thì chúng ta thử tương tác với class Articles mà chúng ta vừa tạo nào. Gõ tiếp lệnh dưới đây để khởi tạo đối tượng $articles.
Bạn sẽ thấy trong cmd hiện ra thông tin đối tượng $articles như sau:
php-artisan-tinker-articles

1. Thêm 1 record mới vào database

Như chúng ta đã biết thì bảng articles trong database bao gồm các fields như là name, author, created_at,…Giờ mình sẽ thử thêm 1 record mới vào bảng này, các bạn gõ từng lệnh sau:
Giờ thì gõ dòng lệnh dưới đây
để đưa đối tượng $articles ra dạng mảng, và bạn sẽ thấy được thông tin một cách rõ ràng
Tiếp đến, gõ như sau để sử dụng phương thức save() của class Model mà mình nhắc đến ở trên để thêm 1 record mới vào db.
nếu thấy trả về true là bạn đã thêm record mới thành công. Để kiểm chứng, các bạn vào database (phpmyadmin), xem bảng articles sẽ thấy có 1 record mới được thêm vào.

2. Truy vấn dữ liệu trong database

Để truy vấn dữ liệu trong DB thì bạn gõ
để sử dụng phương thức find($param) với tham số $param truyền vào là id của record (ở đây là số 1).
Giờ thì gõ tiếp
bạn sẽ thấy chúng ta đã lấy được record vừa thêm vào thông qua id là 1

3. Cập nhật thông tin record vừa tạo

Ở bước 2, sau khi đã lấy được thông tin của record vừa tạo, bạn gõ tiếp lệnh sau để thay đổi giá trị trong cột author
Cập nhật xuống db
Vào bảng articles trong db bạn sẽ thấy thông tin author từ ‘Hieu’ đã được chuyển thành ‘Nam’

4.Xóa record trong db

Ở bước 2 khi mà chúng ta đã lấy được record hiện hành, giờ mình muốn xóa đi record này thì đơn giản chạy function delete() như sau:
Vào trong db, record vừa thêm vào bảng articles đã bị xóa đi.
Tổng kết : Bài viết này mình không liệt kê hết đầy đủ những tính năng của Eloquent, vì mục đích của bài viết này là mình muốn giới thiệu cho các bạn hiểu được Eloquent trong Laravel 5 là gì ? Và nó hoạt động ra sao ? Cách nó tương tác thêm, xóa, sửa với database như thế nào. Bạn có thể tìm hiểu nhiều hơn về Eloquent trong Laravel 5 tại trang chủ của Laravel http://laravel.com/docs/5.0/eloquent . Trong bài tiếp theo mình sẽ hướng dẫn các bạn mô hình MVC (Model, Controller, View)  trong Laravel 5 và cách dữ liệu được truyền đi trong mô hình MVC đó như thế nào. Chúc các bạn học tốt.

Comments

Popular Posts