Xác định mối quan hệ. Các mối quan hệ Eloquent được định nghĩa là các phương thức trên các lớp mô hình Eloquent của bạn. Vì các mối quan hệ cũng đóng vai trò là trình tạo truy vấn mạnh mẽ, nên việc xác định các mối quan hệ dưới dạng phương thức cung cấp khả năng truy vấn và xâu chuỗi phương thức mạnh mẽ Show Laravel cung cấp các mối quan hệ sau –
Bước 1 trước khi cài đặt hãy chắc chắn rằng bạn đã cài đặt nhà soạn nhạc — Cài đặt dự án laravel
Bước 2
php artisan serve Mối quan hệ một đối một Trong mối quan hệ đầu tiên trong laravel, chúng ta sẽ tìm hiểu từng người một Tạo Bộ điều khiển và Di chuyển Mô hình bằng mã ma thuật này php artisan make:model Identitycard -mc mở Chứng minh thư mẫu trong ứng dụng/Mô hình/Thẻ căn cước. php thêm thuộc tính $guarded trong mô hình của bạn như thế này <?phpnamespace App\Models;use Illuminate\Database\Eloquent\Factories\HasFactory;use Illuminate\Database\Eloquent\Model;class Identitycard extends Model{ use HasFactory; protected $guarded = [];} Tiếp theo, tìm tệp di chuyển trong cơ sở dữ liệu/di chuyển/2021_10_08_022409_create_identitycards_table. php Mở tệp và chúng tôi có thể thêm trường trong bảng nhận dạng xem mã này public function up(){Schema::create('identitycards', function (Blueprint $table) { $table->id(); $table->unsignedBigInteger('user_id'); $table->string('identity_number'); $table->string('phone_number'); $table->timestamps(); Và chúng ta cũng tìm hiểu về faker Laravel 8 php artisan make:factory UserFactory --model=User // if in your project don't existphp artisan make:factory IdentitycardFactory --model=Identitycard thay đổi mật khẩu trong UserFactory public function definition(){return [ 'name' => $this->faker->name(), 'email' => $this->faker->unique()->safeEmail(), 'email_verified_at' => now(), 'password' => bcrypt("12121212"), // change to bcrypt 'remember_token' => Str::random(10),];} và sau đó mở IdentitycardFactory. php thay đổi thành này public function definition(){ return [ 'user_id' => \App\Models\User::factory()->create()->id, 'identity_number' => $this->faker->numerify('##########'), 'phone_number' => $this->faker->phoneNumber() ];} sau đó chạy lệnh này php artisan tinker App\Models\Identitycard::factory()->count(10)->create() kiểm tra cơ sở dữ liệu của bạn, chúng tôi có 10 dữ liệu giả từ kẻ giả mạo của laravel Tiếp theo, đi đến mô hình. Người sử dụng. php thêm mối quan hệ mã này ________số 8_______và sau đó đi đến Người mẫu. chứng minh nhân dân. php thêm mối quan hệ mã này public function user(){ return $this->belongsTo(User::class);} được rồi, chúng tôi chỉ cần thêm mối quan hệ trên Người dùng mô hình và Chứng minh nhân dân tiếp theo, chúng ta sẽ đi đến bộ điều khiển. ứng dụng/Http/Bộ điều khiển/IdentityController. php thêm chỉ số chức năng như thế này php artisan make:model Identitycard -mc 0được rồi trường hợp này tôi chỉ hiển thị chứng minh nhân dân chỉ cóMột dữ liệu từ người dùng, bạn có thể sử dụng phương thức có hoặc không, tôi khuyên bạn nên sử dụng nó, sau đó bạn thêm web tuyến đường. php php artisan make:model Identitycard -mc 1đăng ký trình duyệt của bạn Chúng tôi có 10 dữ liệu từ bảng nhận dạng tiếp theo kiểm tra mối quan hệ từ phương thức dd hình ảnh đvâng, có kiểm tra lại mối quan hệ người dùng và chúng tôi chỉ có một dữ liệu từ người dùng vâng Chúng tôi đã nhận được Dữ liệu người dùng từ mối quan hệ nhận dạng nếu bạn muốn hiển thị mối quan hệ này, hãy xem cái này php artisan make:model Identitycard -mc 2dữ liệu ví dụTôi chỉ gọi quan hệ người dùng với $val->user->name Mối quan hệ một đến nhiều vẫn trong cùng một dự án, Tôi có các ví dụ với bảng Sản phẩm và Thương hiệu Tạo bộ điều khiển mô hình và di chuyển php artisan make:model Identitycard -mc 3kiểm tra di chuyển php artisan make:model Identitycard -mc 4mở nhãn hiệu_table. di chuyển php thêm một trường như thế này php artisan make:model Identitycard -mc 5và sau đó bạn có thể sản phẩm_table. di chuyển php và thay đổi thành này php artisan make:model Identitycard -mc 6sau đó bạn có thể viết mã trong lệnh của mình php artisan make:model Identitycard -mc 7chúng tôi vừa tạo thương hiệu và sản phẩm bảng okee tiếp theo Mở ứng dụng mô hình/mô hình/Thương hiệu. php thêm mối quan hệ này và tài sản được bảo vệ php artisan make:model Identitycard -mc 8Mở ứng dụng mô hình/mô hình/Sản phẩm. php thêm mối quan hệ này và tài sản được bảo vệ php artisan make:model Identitycard -mc 9oke, chúng ta chỉ cần thêm mối quan hệ 1 vào nhiều giữa Thương hiệu và Sản phẩm sau đó, chúng ta sẽ tạo lại dữ liệu giả Seeder với Seeder laravel kiểm tra cái này <?phpnamespace App\Models;use Illuminate\Database\Eloquent\Factories\HasFactory;use Illuminate\Database\Eloquent\Model;class Identitycard extends Model{ use HasFactory; protected $guarded = [];}0 mở cơ sở dữ liệu tệp/seeders/BrandSeeder. php <?phpnamespace App\Models;use Illuminate\Database\Eloquent\Factories\HasFactory;use Illuminate\Database\Eloquent\Model;class Identitycard extends Model{ use HasFactory; protected $guarded = [];}1 và sau đó mở cơ sở dữ liệu/seeders/ProductSeeder. php <?phpnamespace App\Models;use Illuminate\Database\Eloquent\Factories\HasFactory;use Illuminate\Database\Eloquent\Model;class Identitycard extends Model{ use HasFactory; protected $guarded = [];}2 sau đó mở cơ sở dữ liệu/seeders/DatabaseSeeder. php và chạy lệnh như thế này <?phpnamespace App\Models;use Illuminate\Database\Eloquent\Factories\HasFactory;use Illuminate\Database\Eloquent\Model;class Identitycard extends Model{ use HasFactory; protected $guarded = [];}3 Vâng, chúng tôi vừa tạo một data seeder với seed laravel, làm tốt lắm. ) sau đó vào Bộ điều khiển BrandController. php thêm mã này <?phpnamespace App\Models;use Illuminate\Database\Eloquent\Factories\HasFactory;use Illuminate\Database\Eloquent\Model;class Identitycard extends Model{ use HasFactory; protected $guarded = [];}4 đừng quên thêm một tuyến đường trong web. php <?phpnamespace App\Models;use Illuminate\Database\Eloquent\Factories\HasFactory;use Illuminate\Database\Eloquent\Model;class Identitycard extends Model{ use HasFactory; protected $guarded = [];}5 đăng ký trình duyệt của bạn http. //127. 0. 0. 1. 8000/nhãn hiệu dữ liệu thương hiệuoke, ở trên có 4 dữ liệu, ta nhập bằng seeder kiểm tra quan hệ có một mảng và quan hệ sản phẩm, có 2 mảng hoặc 2 quan hệ dữ liệu trên sản phẩm vâng <?phpnamespace App\Models;use Illuminate\Database\Eloquent\Factories\HasFactory;use Illuminate\Database\Eloquent\Model;class Identitycard extends Model{ use HasFactory; protected $guarded = [];}6ví dụ minh họa Hoặc bạn có thể gọi quan hệ trên sản phẩm để tìm hiểu thương hiệu của sản phẩm Okee mở bộ điều khiển ProductController. php chúng tôi có 6 dữ liệu từ cơ sở dữ liệu sản phẩm, xem lại, chọn một dữ liệu của mảng sản phẩm có mối quan hệ thương hiệu từ các sản phẩm, nhìn lại vâng, chúng tôi đã có mối quan hệ thương hiệu từ các sản phẩm và nhìn chúng tôi nhận được brand_name là
<?phpnamespace App\Models;use Illuminate\Database\Eloquent\Factories\HasFactory;use Illuminate\Database\Eloquent\Model;class Identitycard extends Model{ use HasFactory; protected $guarded = [];}7 và kiểm tra trong trình duyệt của bạn. http. //127. 0. 0. 1. 8000/sản phẩm Mối quan hệ nhiều đến nhiều
Tôi có hai mối quan hệ bảng nhiều là gì? Mối quan hệ nhiều-nhiều xảy ra khi nhiều bản ghi trong một bảng được liên kết với nhiều bản ghi trong một bảng khác. Ví dụ: tồn tại mối quan hệ nhiều-nhiều giữa khách hàng và sản phẩm. khách hàng có thể mua nhiều sản phẩm khác nhau và nhiều khách hàng có thể mua sản phẩm Trong laravel có một table pivot trộn hai tên thành một tên Ví dụ tôi có bảng. sản phẩm và danh mục vì vậy Laravel không thể đọc bảng danh mục sản phẩm tự động - Đầu tiên trước đây chúng tôi đã thực hiện di chuyển sản phẩm, bộ điều khiển và mô hình, chúng tôi không thực hiện nữa. chúng tôi chỉ tạo một danh mục Tạo bộ điều khiển mô hình và di chuyển và xoay bảng vì trong laravel chúng tôi sử dụng bảng tổng hợp cho nhiều người <?phpnamespace App\Models;use Illuminate\Database\Eloquent\Factories\HasFactory;use Illuminate\Database\Eloquent\Model;class Identitycard extends Model{ use HasFactory; protected $guarded = [];}8 mở tập tin di chuyển <?phpnamespace App\Models;use Illuminate\Database\Eloquent\Factories\HasFactory;use Illuminate\Database\Eloquent\Model;class Identitycard extends Model{ use HasFactory; protected $guarded = [];}9 danh mục di chuyển public function up(){Schema::create('identitycards', function (Blueprint $table) { $table->id(); $table->unsignedBigInteger('user_id'); $table->string('identity_number'); $table->string('phone_number'); $table->timestamps();0 di chuyển danh mục_sản phẩm public function up(){Schema::create('identitycards', function (Blueprint $table) { $table->id(); $table->unsignedBigInteger('user_id'); $table->string('identity_number'); $table->string('phone_number'); $table->timestamps();1 và chạy cái này trong lệnh của bạn php artisan make:model Identitycard -mc 7Mô hình mở Danh mục và Sản phẩm sao chép mối quan hệ này Loại. php public function up(){Schema::create('identitycards', function (Blueprint $table) { $table->id(); $table->unsignedBigInteger('user_id'); $table->string('identity_number'); $table->string('phone_number'); $table->timestamps();3 Sản phẩm. php public function up(){Schema::create('identitycards', function (Blueprint $table) { $table->id(); $table->unsignedBigInteger('user_id'); $table->string('identity_number'); $table->string('phone_number'); $table->timestamps();4 Sau đó, chúng tôi tạo dữ liệu seeder cho bảng danh mục chạy lệnh này public function up(){Schema::create('identitycards', function (Blueprint $table) { $table->id(); $table->unsignedBigInteger('user_id'); $table->string('identity_number'); $table->string('phone_number'); $table->timestamps();5 mở tập tin CategorySeeder. php Sao chép mã này public function up(){Schema::create('identitycards', function (Blueprint $table) { $table->id(); $table->unsignedBigInteger('user_id'); $table->string('identity_number'); $table->string('phone_number'); $table->timestamps();6 sau đó public function up(){Schema::create('identitycards', function (Blueprint $table) { $table->id(); $table->unsignedBigInteger('user_id'); $table->string('identity_number'); $table->string('phone_number'); $table->timestamps();7 Tiếp theo, Chuyển đến bộ điều khiển ProductController. php public function up(){Schema::create('identitycards', function (Blueprint $table) { $table->id(); $table->unsignedBigInteger('user_id'); $table->string('identity_number'); $table->string('phone_number'); $table->timestamps();8 Đọc thêm tại Đừng quên thay đổi tuyến đường web. php Tôi sử dụng phương thức get cho dữ liệu giả, không sử dụng get cho dữ liệu lưu trữ, bạn có thể sử dụng Route. bưu kiện public function up(){Schema::create('identitycards', function (Blueprint $table) { $table->id(); $table->unsignedBigInteger('user_id'); $table->string('identity_number'); $table->string('phone_number'); $table->timestamps();9 mở trong trình duyệt của bạn http. //127. 0. 0. 1. 8000/sản phẩm/cửa hàng và bạn có thể thấy trong cơ sở dữ liệu của mình có một sản phẩm mới từ liên kết ở trên và kiểm tra bảng category_product có một số dữ liệu category_id từ phương thức đồng bộ hóa, $product->categories()->sync($category_id); Làm cách nào để xác định mối quan hệ 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 viết.
Làm cách nào để sử dụng mối quan hệ hasMany trong bộ điều khiển laravel?Sử dụng phương thức hasMany trong bảng bình luận bài viết . Bước 1. Tạo mô hình bài viết và bình luận. Tạo hai model trong thư mục app\Models, một là bài viết và một là bình luận. . Bước 2. Tạo quan hệ hasMany trong mô hình Article. . Bước 3. Sử dụng mối quan hệ trong bộ điều khiển. . Bước 4. Tạo tuyến đường Làm cách nào tôi có thể cập nhật mối quan hệ của mình trong laravel?Cập nhật dữ liệu quan hệ laravel . $user->profile() sẽ trả về lớp quan hệ như Illuminate/Database/Eloquent/Relations/HasOne $user->profile sẽ trả về lớp mô hình UserProfile thực tế 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 |