Quay lại

Cách sử dụng Capsule để sử dụng Eloquent ORM mà không cần dùng Laravel Chuyên mục PHP và Laravel    2023-07-28    757 Lượt xem    73 Lượt thích    comment-3 Created with Sketch Beta. 0 Bình luận

Cách sử dụng Capsule để sử dụng Eloquent ORM mà không cần dùng Laravel

Nếu bạn yêu thích Laravel như một framework hay cụ thể hơn là ORM Eloquent giống như mình thì rất có thể bạn cũng muốn sử dụng ORM tuyệt vời này trong các ứng dụng PHP không phải của Laravel. Và tin tốt là nó dễ dàng hơn bạn nghĩ. Laravel cung cấp một gói độc lập gọi là Capsule mà bạn có thể sử dụng trong dự án của riêng mình. Đó là bộ công cụ cơ sở dữ liệu đầy đủ cho PHP, cung cấp trình tạo query builder, ORM kiểu ActiveRecord và schema builder. Nó hiện hỗ trợ MySQL, Postgres, SQL Server và SQLite.

Cài đặt Eloquent Capsule

Để sử dụng Eloquent, bạn chỉ cần cài đặt nó qua Composer vào dự án của mình bằng lệnh sau.

composer require "illuminate/database"

Cách sử dụng

Bây giờ, sau khi đã cài đặt, để thực sự sử dụng Eloquent, trước tiên bạn cần tạo một manager instance Capsule mới. Capsule nhằm mục đích làm cho việc configuring library để sử dụng bên ngoài framework Laravel dễ dàng nhất có thể. Đây là cách bạn có thể tạo cấu hình cơ sở dữ liệu.

use Illuminate\Database\Capsule\Manager as Capsule;

$capsule = new Capsule;

$capsule->addConnection([
    'driver'    => 'mysql',
    'host'      => 'localhost',
    'database'  => 'database',
    'username'  => 'root',
    'password'  => 'password',
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
]);

Thực hiện truy vấn

Khi phiên bản Capsule đã được đăng ký, bạn có thể sử dụng nó như thế này.

$users = Capsule::table('users')->where('votes', '>', 100)->get();

Các phương thức cốt lõi khác có thể được truy cập trực tiếp từ Capsule theo cách tương tự như từ DB Facade:

$results = Capsule::select('select * from users where id = ?', [1]);

Sử dụng Schema Builder

Bạn cũng có thể tạo các schemas bảng giống như bạn đã quen với Laravel.

Capsule::schema()->create('users', function ($table) {
    $table->increments('id');
    $table->string('email')->unique();
    $table->timestamps();
});

Bạn thậm chí có thể sử dụng Eloquent trực tiếp bằng Illuminate\Database\Eloquent\Model bằng cách tạo các  table models.

class User extends Illuminate\Database\Eloquent\Model {
    // code goes here
}

$users = User::where('votes', '>', 1)->get();

 

Bình luận (0)

Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough

Bài viết liên quan

Learning English Everyday