fbpx

Eloquent ORM là thư viện ORM (ORM là gì xem tại đây) được cài đặt kèm với Laravel, nó cung cấp loạt các phương thức truy xuất dữ liệu đơn giản, dễ triển khai và cực kì đẹp mắt. Mỗi bảng dữ liệu đều được mô tả thành một “model” trong Laravel và Eloquent ORM ánh xạ các dữ liệu này thành các đối tượng Active Record tương ứng với “model” đó, từ đó làm việc với dữ liệu trở nên đơn giản hơn với thao tác chính từ các “model” này.

Cách triển khai Eloquent ORM:

Đầu tiên cần chắc chắn rằng bạn đã cấu hình kết nối với cơ sở dữ liệu của mình tại 1 trong 2 file sau: .env hoặc config/database.php. Bước tiếp theo là tạo các models tương ứng với các tables cần thao tác dữ liệu. Bạn có thể tạo tự động thông qua Artisan với câu lệnh dưới đây

php artisan make:model Flight

Hoặc tự tạo bằng editor của mình bằng cách tạo một class kế thừa từ lớp: Illuminate\Database\Eloquent\Model

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Flight extends Model
{
    //
}

Kết nối model với table cần map bằng cách thêm tên của table đó vào thuộc tính trong model

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Flight extends Model
{
    /**
     * The table associated with the model.
     *
     * @var string
     */
    protected $table = 'my_flights';
}

Thay đổi Primary Key nếu table có khóa chính không phải id bằng cách

namespace App;

use Illuminate\Database\Eloquent\Model;

class Flight extends Model
{
    /**
     * defined primary key
     *
     * @var string
     */
    protected $primaryKey = 'id';
}

Timestamps:Theo mặc định Eloquent cần 2 trường dữ liệu updated_at và created_at trong table để lưu trữ thời gian insert dữ liệu và cập nhật dữ liệu. Để có thể tắt tính năng này bạn thêm thuộc tính timestamp = false vào trong model

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Flight extends Model
{
    /**
     * Indicates if the model should be timestamped.
     *
     * @var bool
     */
    public $timestamps = false;
}

Để format cấu trúc lưu trữ thời gian bạn có thể điều chỉnh tại:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Flight extends Model
{
    /**
     * The storage format of the model's date columns.
     *
     * @var string
     */
    protected $dateFormat = 'U';
}

Thay đổi tên 2 trường dữ liệu mặc định created_at và updated_at bằng cách định nghĩa tại

<?php

class Flight extends Model
{
    const CREATED_AT = 'creation_date';
    const UPDATED_AT = 'last_update';
}

Thay đổi điều chỉnh kết nối database: thay đỏi điểm kết nối với database bởi định nghĩa thuộc tính này tại đây, với cách này bạn có thể tạo ứng dụng với 2 hoặc nhiều hơn nhiều kết nối với database.

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Flight extends Model
{
    /**
     * The connection name for the model.
     *
     * @var string
     */
    protected $connection = 'connection-name';
}

 

 

About the author

Kevin Dang

Hey there! My name is Kevin Dang, I am website, software, mobile app develop, web admin system. Expert living in Hồ Chí Minh (Việt Nam). I am very interested in digital marketing with: SEO, Facebook, Google Ads ... This blog is where I will share the experiences, techniques and knowledge I have learned.