Các bài viết

Laravel Eloquent là gì, cách sử dụng nó, hướng dẫn với các ví dụ

Laravel PHP framework bao gồm Eloquent Object Relational Mapper (ORM), cung cấp một cách cực kỳ dễ dàng để giao tiếp với cơ sở dữ liệu. 

Laravel và Eloquent giúp tăng tốc độ phát triển ứng dụng và nền tảng, cung cấp giải pháp thích hợp cho hầu hết các vấn đề. Các yêu cầu được giải quyết bằng sự phát triển nhanh hơn, cũng như mã được tổ chức tốt, có thể tái sử dụng, có thể bảo trì và có thể mở rộng. 

Cách thức hoạt động của Eloquent

Các nhà phát triển có thể làm việc trong Eloquent với nhiều cơ sở dữ liệu một cách hiệu quả bằng cách sử dụng triển khai ActiveMethod. Đó là một mẫu kiến ​​trúc trong đó mô hình được tạo trong cấu trúc Model-View-Controller (MVC) tương ứng với một bảng trong cơ sở dữ liệu. Ưu điểm là các mô hình thực hiện các thao tác cơ sở dữ liệu thông thường mà không cần mã hóa các truy vấn SQL dài. Mẫu cho phép bạn truy vấn dữ liệu trong bảng và chèn bản ghi mới vào bảng. Quá trình đồng bộ hóa nhiều cơ sở dữ liệu chạy trên các hệ thống khác nhau được đơn giản hóa. Bạn không cần phải viết truy vấn SQL. Tât cả nhưng điêu bạn phải lam la defiHoàn thành các bảng cơ sở dữ liệu và mối quan hệ giữa chúng và Eloquent sẽ thực hiện phần còn lại của công việc.

Chuẩn bị Laravel

Đánh giá cao tiện ích của Eloquent ORM và hiểu hệ sinh thái là điều bắt buộc. Các bước để bắt đầu:

  1. Cài đặt Laravel từ getcomposer.org, để thực hiện việc này, hãy làm theo hướng dẫn tại đây
  2. Tạo migration sử dụng bảng điều khiển Artisan
  3. Tạo mẫu eloquent
  4. chạy tôi seed của cơ sở dữ liệu

Artisan Console là tên của giao diện dòng lệnh có trong Laravel. Cung cấp một tập hợp các lệnh hữu ích để sử dụng trong khi phát triển ứng dụng của bạn. Nó được thúc đẩy bởi thành phần mạnh mẽ Symfony Console.

Để xem danh sách tất cả các lệnh Artisan có sẵn, bạn có thể sử dụng lệnh list:

php artisan list

Tất cả các lệnh đi kèm với một mô tả ngắn gọn về các đối số và tùy chọn của nó. Điều này được hiển thị trong màn hình "trợ giúp". Để hiển thị màn hình trợ giúp, chỉ cần thêm “help” vào trước tên lệnh như hình minh họa:

php artisan help migrate

Migration

Di chuyển là một quy trình quản lý cơ sở dữ liệu bằng cách viết PHP thay thế SQL. Cung cấp một cách để thêm kiểm soát phiên bản vào cơ sở dữ liệu. 

Để tạo di chuyển, chỉ cần chạy lệnh sau:

php artisan make:migration create_student_records

Điều này tạo ra tệp di chuyển. Trong trình soạn thảo văn bản của bạn, hãy mở tệp bạn vừa tạo trong thư mục database\migrations:

<?php
use IlluminateSupportFacadesSchema;
use IlluminateDatabaseSchemaBlueprint;
use IlluminateDatabaseMigrationsMigration;

class CreateStudentRecordsTable extends Migration
{
    /**
    * Run the migrations.
    *
    * @return void
    */
    public function up()
    {
        Schema::create('student__records', function (Blueprint $table) {
            $table->increments('id');
            $table->timestamps();
        });
    }

    /**
    * Reverse the migrations.
    *
    * @return void
    */
    public function down()
    {
        Schema::dropIfExists('student__records');
    }
}

Mã là một lớp có cùng tên 'create student records', và có hai phương pháp: lên và xuống. Phương thức up sẽ thực hiện các thay đổi đối với cơ sở dữ liệu; vì vậy bất cứ khi nào bạn di chuyển cơ sở dữ liệu của mình, bất kỳ mã nào trong phương thức up sẽ được thực thi. Mặt khác, phương thức down sẽ khôi phục các thay đổi cơ sở dữ liệu đó; vì vậy bất cứ khi nào bạn chạy rollback của migration, phương thức down sẽ hoàn tác những gì phương thức up đã làm. Bên trong phương pháp up có trình tạo lược đồ được sử dụng để tạo và thao tác với các bảng. Điều gì xảy ra nếu bạn hủy bỏ một số di chuyển của mình? Tất cả những gì bạn phải làm là thực hiện lệnh sau:

php artisan migrate:rollback

Và anh ấy sẽ thu thập cái cuối cùng migration mà đã được thực hiện. Ngoài ra, bạn hoàn toàn có thể khôi phục cơ sở dữ liệu bằng cách chạy:

php artisan migrate:reset

Thao tác này sẽ hủy tất cả các lần di chuyển của bạn.

Defiđề cập đến các mô hình của Eloquent

Sau khi quá trình di chuyển cơ sở dữ liệu hoàn tất, quá trình tiếp theo là seedingEloquent đi vào chơi kể từ khi seeding đang chèn bản ghi vào cơ sở dữ liệu của chúng tôi. Vì vậy, bạn sẽ cần tạo các mẫu trước khi điền vào cơ sở dữ liệu. Mỗi bảng cơ sở dữ liệu có một mô hình tương ứng được sử dụng để tương tác với bảng đó. Mẫu cho phép bạn truy vấn dữ liệu trong bảng của mình, cũng như chèn bản ghi mới vào bảng. Cách dễ nhất để khởi tạo mô hình là sử dụng lệnh sau:

php artisan make:model Student
Một ví dụ về mẫu được hiển thị bên dưới Student, có thể được sử dụng để truy xuất và lưu trữ thông tin từ bảng cơ sở dữ liệu của học sinh:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;

class Student extends Model
{
    //
}

Khi bạn tạo một mô hình và đồng thời bạn muốn tạo di chuyển cơ sở dữ liệu, bạn có thể sử dụng tùy chọn –migration o -m:

php artisan make:model Student --migration

php artisan make:model Student -m

Máy gieo hạt

Nhìn chung, các seeder là một tập hợp các lớp đặc biệt cho phép chúng tôi điền đi điền lại cơ sở dữ liệu của mình với cùng một dữ liệu. Chúng tôi thực hiện lệnh sau:

php artisan make:seeder StudentsRecordSeeder

Trong trình soạn thảo văn bản, bên dưới thư mục seed, mở tệp mới tạo với tên tệp: StudentsRecordSeeder.php. Như bạn có thể thấy đây chỉ là một lớp rất đơn giản với một phương thức gọi là run().

<?php
use IlluminateDatabaseSeeder;

class StudentsRecordSeeder extends Seeder
{
    /**
    * Run the database seeds
    * @return void
    */

    public function run()
    {
        //
    }
}

Mã này chỉ là một trình bao bọc xung quanh lớp lệnh điều khiển, được xây dựng đặc biệt để giúp thực hiện nhiệm vụ seeding. Chỉnh sửa mã và sau đó lưu nó.

Bản tin đổi mới
Đừng bỏ lỡ những tin tức quan trọng nhất về đổi mới. Đăng ký để nhận chúng qua email.
public function run()
{
    echo 'Seeding!';
}

Và đi đến thiết bị đầu cuối:

php artisan db:seed --class=StudentsRecordSeeder

Bây giờ bạn có thể điền vào bảng một số mục nhập và chạy:

php artisan db:seed --class=class=StudentsRecordSeeder

Tại đây, bạn có thể tiếp tục xóa, thêm, sửa đổi các mục nhập trong DB, sau đó khôi phục chúng bằng một lệnh đơn giản.

CRUD với Laravel Eloquent

Các thao tác CRUD với Laravel Eloquent object-relational mapper (ORM) giúp các nhà phát triển Laravel làm việc với nhiều cơ sở dữ liệu dễ dàng hơn. Nó thực hiện các thao tác tạo, đọc, cập nhật và xóa (CRUD) và ánh xạ các mô hình đối tượng vào các bảng cơ sở dữ liệu. Xử lý tất cả các tương tác cơ sở dữ liệu cần thiết cho hoạt động CRUD.

Tạo hồ sơ

Bạn có thể sử dụng phương thức ::create để chèn một bản ghi mới vào cơ sở dữ liệu.

student_record::create(array(
    'first_name' => 'John',
    'last_name'  => 'Doe',
    'student_rank' => 1
));

Ngoài cách tạo đơn giản như trình bày ở trên, bạn cũng có thể tạo một đối tượng mới và đặt cho nó các thuộc tính khác. Sau đó, bạn có thể gọi hàm save() và chạy mã. phương pháp như firstOrCreate() hoặc firstOrNew() là các tùy chọn khác để tạo bản ghi. Những điều này sẽ cho phép bạn tìm một sinh viên với các thuộc tính nhất định; nếu không tìm thấy sinh viên đó, bạn sẽ tạo nó trong cơ sở dữ liệu hoặc khởi tạo một phiên bản mới.

Đọc hồ sơ

Sử dụng Eloquent ORM, bạn có thể tìm thấy các bản ghi trong cơ sở dữ liệu của mình. Các truy vấn được xây dựng đơn giản và cung cấp một luồng thông suốt. Để tạo báo cáo::where, bạn sẽ sử dụng các phương pháp get() Và first(). phương pháp first() sẽ chỉ trả về một bản ghi, trong khi phương thức get() sẽ trả về một mảng các bản ghi có thể lặp lại. Ngoài ra, phương pháp find() có thể được sử dụng với một mảng các khóa chính, sẽ trả về một tập hợp các bản ghi phù hợp. Dưới đây là một số ví dụ:

$student = Students::all();

Mã này được tất cả các sinh viên. Trong khi đoạn mã sau tìm một sinh viên cụ thể theo ID:

$student = Sinh viên::tìm(1);

Ngoài ra, như được hiển thị bên dưới, đoạn mã này mô tả việc tìm kiếm một sinh viên dựa trên một thuộc tính cụ thể.

$JohnDoe = Students::where('name', '=', 'John Doe')->first();

Đối với phương thức get(), mã này cho biết cách tìm một học sinh có trình độ trên 5.

$rankStudents = Student::where('student_rank', '>', 5)->get();
Cập nhật bản ghi

Cập nhật bản ghi bằng Eloquent cũng dễ dàng như vậy. Để cập nhật bản ghi, chỉ cần tìm bản ghi bạn muốn cập nhật, chỉnh sửa các thuộc tính và lưu. Ví dụ: để thay đổi cấp lớp của học sinh John Doe thành 5, trước tiên hãy tìm học sinh đó rồi thực hiện phương thức lưu.

$JohnDoe = Bear::where('name', '=', 'John Doe')->first();
$JohnDoe->danger_level = 5;
$JohnDoe->save();

Phương thức lưu cũng có thể được sử dụng để cập nhật các mô hình đã tồn tại trong cơ sở dữ liệu.

Xóa bản ghi

Eloquent tự hào về quy trình cập nhật bản ghi dễ dàng của mình, nhưng nó cũng có cùng một câu chuyện với việc xóa. Có hai tùy chọn: kéo ra các bản ghi và thực hiện phương thức xóa hoặc đơn giản là sử dụng phương thức hủy. Để tìm và xóa một bản ghi, chỉ cần chạy các lệnh sau:

$student = Students::find(1);
$student->delete();

Để xóa một bản ghi và nhiều bản ghi, các lệnh được chạy:

Students::destroy(1);
Students::destroy(1, 2, 3);

Lưu ý rằng các tham số hủy chỉ là các khóa chính không giống như phương thức xóa có thể chấp nhận bất kỳ cột cơ sở dữ liệu nào.

Để tìm và xóa tất cả học sinh trên cấp 10.

Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
Bản tin đổi mới
Đừng bỏ lỡ những tin tức quan trọng nhất về đổi mới. Đăng ký để nhận chúng qua email.

Bài viết gần đây

Sự can thiệp sáng tạo vào thực tế tăng cường, với người xem Apple tại Phòng khám đa khoa Catania

Một ca phẫu thuật tạo hình mắt bằng cách sử dụng trình xem thương mại Apple Vision Pro đã được thực hiện tại Phòng khám đa khoa Catania…

3 May 2024

Lợi ích của việc tô màu cho trẻ em - thế giới kỳ diệu dành cho mọi lứa tuổi

Phát triển kỹ năng vận động tinh thông qua tô màu giúp trẻ chuẩn bị cho những kỹ năng phức tạp hơn như viết. Để tô màu…

2 May 2024

Tương lai là đây: Ngành vận tải biển đang cách mạng hóa nền kinh tế toàn cầu như thế nào

Ngành hải quân là một cường quốc kinh tế toàn cầu thực sự, đang hướng tới thị trường 150 tỷ...

1 May 2024

Các nhà xuất bản và OpenAI ký thỏa thuận điều chỉnh luồng thông tin được Trí tuệ nhân tạo xử lý

Thứ Hai tuần trước, Financial Times đã công bố một thỏa thuận với OpenAI. FT cấp phép cho hoạt động báo chí đẳng cấp thế giới…

30 tháng tư 2024

Đọc Đổi mới bằng ngôn ngữ của bạn

Bản tin đổi mới
Đừng bỏ lỡ những tin tức quan trọng nhất về đổi mới. Đăng ký để nhận chúng qua email.

Theo chúng tôi