Làm cách nào để sử dụng mối quan hệ hasMany trong bộ điều khiển laravel?

Ở đây, tôi sẽ chỉ cho bạn các ví dụ về mối quan hệ một đến nhiều trong laravel 9. đó là một ví dụ đơn giản về laravel 9 có nhiều ví dụ về mối quan hệ. từng bước giải thích có nhiều mối quan hệ laravel 9. Hướng dẫn này sẽ cung cấp cho bạn một ví dụ đơn giản về đồng bộ hóa một đến nhiều trong laravel 9. Được rồi, hãy đi sâu vào các bước

Vì vậy, trong hướng dẫn này, bạn có thể hiểu cách tạo di chuyển bằng lược đồ khóa ngoài cho một đến nhiều mối quan hệ, sử dụng đồng bộ hóa với bảng tổng hợp, tạo bản ghi, lấy tất cả dữ liệu, xóa, cập nhật và mọi thứ liên quan đến mối quan hệ một đến nhiều

Trong ví dụ này, tôi sẽ tạo bảng "bài viết" và bảng "bình luận". cả hai bảng được kết nối với nhau. bây giờ chúng ta sẽ tạo một đến nhiều mối quan hệ với nhau bằng cách sử dụng Eloquent Model của laravel. Trước tiên, chúng tôi sẽ tạo di chuyển cơ sở dữ liệu, sau đó lập mô hình, truy xuất bản ghi và sau đó là cách tạo bản ghi nữa. Vì vậy, bạn cũng có thể thấy cấu trúc bảng cơ sở dữ liệu trên màn hình bên dưới

Làm cách nào để sử dụng mối quan hệ hasMany trong bộ điều khiển laravel?

Mối quan hệ một đến nhiều sẽ sử dụng "hasMany()" và "belongsTo()" cho mối quan hệ

Tạo di chuyển

Bây giờ chúng ta phải tạo di chuyển bảng "bài đăng" và "bình luận". chúng tôi cũng sẽ thêm khóa ngoại với bảng bài viết. vì vậy hãy tạo như dưới đây

di chuyển bảng bài viết

use Illuminate\Database\Migrations\Migration;

use Illuminate\Database\Schema\Blueprint;

use Illuminate\Support\Facades\Schema;

return new class extends Migration

{

/**

* Run the migrations.

*

* @return void

*/

public function up()

{

Schema::create('posts', function (Blueprint $table) {

$table->id();

$table->string("name");

$table->timestamps();

});

}

/**

* Reverse the migrations.

*

* @return void

*/

public function down()

{

Schema::dropIfExists('posts');

}

};

di chuyển bảng nhận xét

use Illuminate\Database\Migrations\Migration;

use Illuminate\Database\Schema\Blueprint;

use Illuminate\Support\Facades\Schema;

return new class extends Migration

{

/**

* Run the migrations.

*

* @return void

*/

public function up()

{

Schema::create('comments', function (Blueprint $table) {

$table->id();

$table->foreignId('post_id')->constrained('posts');

$table->string("comment");

$table->timestamps();

});

}

/**

* Reverse the migrations.

*

* @return void

*/

public function down()

{

Schema::dropIfExists('comments');

}

};

Tạo mô hình

Ở đây, chúng ta sẽ tạo mô hình bảng Post và Comment. chúng tôi cũng sẽ sử dụng "hasMany()" và "belongsTo()" cho mối quan hệ của cả hai mô hình

Laravel, một trong những framework PHP phổ biến nhất, có một số chức năng, chẳng hạn như người dùng trực tuyến hoặc ngoại tuyến trên Laravel, khiến nó trở nên hấp dẫn đối với các nhà phát triển, một trong số đó là hasOne, về cơ bản cho phép giao tiếp hoặc tạo mối quan hệ giữa hai bảng. Tên của nó có nghĩa là "tạo mối quan hệ một đối một"

Trước khi giải thích cách sử dụng quan hệ Laravel hữu ích này, hãy xác định khung này bao gồm những gì và nó có thể đạt được những gì. Trong số các lợi ích mà Laravel mang lại để phát triển các ứng dụng bằng PHP, nổi bật là khả năng phát triển dễ dàng, vì nó tích hợp các công cụ BackEnd

Ngoài ra, kết hợp các gói tốt nhất trong hệ sinh thái PHP, kết quả là nó cung cấp một khung mạnh mẽ và thân thiện cho các nhà phát triển. Nó có khả năng tạo các trang web động với một công cụ mẫu sáng tạo, cũng như cung cấp cho nhà phát triển một quy trình di chuyển rất an toàn và chống đạn

Laravel đi kèm với các thư viện định hướng mục tiêu được cài đặt sẵn và sử dụng một đơn vị PHP để tự động kiểm tra mã khi phát triển các ứng dụng web

Sử dụng mối quan hệ hasOne trong Laravel

Trước hết, chúng ta có thể giải thích một ví dụ đơn giản về việc sử dụng hasOne. nếu một bài viết có nhận xét và chúng tôi muốn lấy một trong số chúng cùng với các chi tiết của bài viết, chúng tôi có thể sử dụng mối quan hệ hasOne hoặc người dùng có thể có một bảng hồ sơ

Cần lưu ý rằng các mối quan hệ của Laravel không tạo kết nối trong cơ sở dữ liệu, các mối quan hệ này được tạo trong lớp ứng dụng và điều này tạo ra kết quả cuối cùng. Mối quan hệ hasOne chấp nhận ba tham số. tên kiểu máy, Foreign_key và tên thứ ba, tùy chọn, là local_key

Đây là cú pháp

hasOne(child::class,'foreign_key','local_key');
    }
}

Ở cú pháp trên, chúng ta đã sử dụng phương thức thuộc về với 3 tham số nên ở đây Child. class là tên của model mà chúng ta muốn liên quan, Foreign_key có nghĩa là tên cột của bảng con và local_key có nghĩa là tên cột của bảng của chính bạn

Bạn có cần các chuyên gia phát triển?

Bản thân Laravel không có khả năng tạo truy vấn nối bên trong, do đó, nó thực hiện riêng rẽ rồi nối dữ liệu, cách sử dụng như sau

Article::with('child')->get();

Dòng lệnh này sẽ cho phép bạn lấy lại tất cả các bài viết bên cạnh bình luận đầu tiên

Hãy giải thích việc sử dụng hasOne trong bảng nhận xét bài viết

1. Tạo bình luận và mô hình bài viết

Mô hình mặt hàng




Comment model:




2. Create the hasOne relationship in the item model

hasOne(Comment::class);
    }
}

Trong mã, một phương thức comment đã được tạo và hasOne được sử dụng cho mối quan hệ với mô hình comment. Khi thực hiện điều này, Laravel giả định rằng tên bảng là comment và khóa ngoại là bảng article_id

3. Sử dụng quan hệ trong bộ điều khiển

Hãy tạo một bộ điều khiển và nhập các lớp cần thiết để truy cập mô hình và các mối quan hệ của nó

first();
        dump($article);

        dump($article->comment);

    }
}

4. Tạo tuyến đường

Cuối cùng, tạo tuyến đường trong web. php

Route::get('/articles',[ArticleController::class, 'index']);

Đây là một ví dụ về cách sử dụng mối quan hệ hasOne trong Dự án Laravel, lý tưởng để giúp công việc của nhà phát triển nhanh hơn và dễ dàng hơn, có thể tạo cầu nối giao tiếp hoặc mối quan hệ giữa hai bảng dữ liệu

Việc sử dụng hasMany trong Laravel là gì?

Laravel cung cấp hasMany() vàthuộcTo(), v.v. để truy cập nhanh hơn vào các bản ghi cha/con giữa các bảng ở cấp độ mô hình . Chẳng hạn, bạn có thể truy cập bản ghi con bằng ->{attr} , thao tác này làm cho bản ghi con giống như một thuộc tính của bản ghi cha.

Làm cách nào để sử dụng hasOne trong Laravel?

Hãy giải thích việc sử dụng hasOne trong bảng nhận xét bài viết .
Tạo bình luận và mô hình bài viết. Mô hình mặt hàng. .
Tạo mối quan hệ hasOne trong mô hình vật phẩm.
Sử dụng quan hệ trong bộ điều khiển. Hãy tạo một bộ điều khiển và nhập các lớp cần thiết để truy cập mô hình và các mối quan hệ của nó. .
Tạo tuyến đường

Làm cách nào để tìm nạp dữ liệu trong mối quan hệ một đến nhiều trong Laravel?

Truy xuất từ ​​một đến nhiều dữ liệu về mối quan hệ . tìm(1); . Tương tự, chúng ta có thể truy xuất mô hình liên quan nghịch đảo. $brand = Brand::find(1); $products = $brand->products; When we try to get products for a brand, Laravel will look into products table with the brand ID in the brand_id columns and grab all the products matching with this ID. Similarly, we can retrieve the inverse related model.

Làm cách nào để tạo mối quan hệ giữa hai bảng trong Laravel?

Để xác định mối quan hệ, trước tiên chúng ta cần xác định phương thức post() trong mô hình Người dùng . Trong phương thức post(), chúng ta cần triển khai phương thức hasOne() trả về kết quả. Hãy hiểu mối quan hệ 1-1 thông qua một ví dụ. Đầu tiên, chúng tôi thêm cột mới (user_id) vào bảng hiện có có tên là bài đăng.