


Apakah hubungan yang fasih (satu-satu, satu-ke-banyak, banyak-banyak)?
Jun 21, 2025 am 12:56 AMHubungan fasih di Laravel digunakan untuk menyambungkan jadual pangkalan data yang berbeza melalui model untuk memudahkan operasi data yang berkaitan. Hubungan Satu-ke-Satu seperti Pengguna dan Maklumat: Model Pengguna menggunakan HasOne (profil :: kelas), dan model profil menggunakan kepunyaan (pengguna :: kelas). Hubungan satu-ke-banyak seperti artikel dan komen: Model Post menggunakan Hasmany (komen :: kelas), dan model komen menggunakannya (pos :: kelas). Banyak hubungan seperti pengguna dan peranan: kedua-dua pengguna dan model peranan menggunakan kaedah milik (), dan hubungannya diuruskan melalui jadual perantaraan. Anda boleh menambah atau mengeluarkan persatuan menggunakan lampiran () atau lepaskan ().
Hubungan fasih di Laravel adalah bagaimana anda menyambungkan jadual pangkalan data yang berbeza menggunakan model. Mereka memudahkan untuk bekerja dengan data yang berkaitan tanpa menulis SQL mentah bergabung setiap kali.
Hubungan Satu-ke-Satu
Ini adalah apabila satu rekod dalam jadual dikaitkan dengan satu rekod yang tepat dalam jadual lain.
Sebagai contoh, User
mungkin mempunyai satu Profile
. Untuk menetapkan ini dalam fasih:
- Anda membuat dua model:
User
danProfile
. - Dalam model
User
, tentukan kaedah yang dipanggilprofile()
yang mengembalikan$this->hasOne(Profile::class);
- Dalam model profil, tentukan kaedah yang dipanggil
user()
yang mengembalikan$this->belongsTo(User::class);
Secara lalai, fasih menganggap kunci asing adalah nama model dalam Snake_case plus _id
, seperti user_id
.
Anda kemudian boleh melakukan perkara seperti:
$ user = user :: cari (1); echo $ user-> profile-> bio;
Ini menjadikannya mudah untuk mengakses data yang berkaitan tanpa menanyakan secara manual setiap kali.
Hubungan Satu-ke-Banyak
Ini adalah apabila satu rekod mempunyai banyak rekod yang berkaitan - seperti Post
yang mempunyai banyak Comments
.
Untuk menetapkan ini:
- Model
Comment
harus dimiliki olehPost
. - Model
Post
harus menentukan kaedah seperticomments()
yang mengembalikan$this->hasMany(Comment::class);
Kemudian anda boleh mengambil semua komen untuk jawatan dengan mudah:
$ pos = pos :: cari (5); foreach ($ post-> komen sebagai $ komen) { echo $ comment-> text; }
Dan jika komen mempunyai post_id
, anda juga boleh pergi ke arah yang lain:
$ Comment = Comment :: Cari (1); echo $ Comment-> Post-> Title;
Adalah biasa untuk menggunakan ini untuk perkara -perkara seperti catatan blog, pesanan setiap pelanggan, dll.
Banyak hubungan
Ini adalah apabila pelbagai rekod dalam satu jadual yang berkaitan dengan pelbagai rekod dalam Users
lain seperti yang dimiliki oleh pelbagai Roles
, atau Posts
yang disambungkan ke banyak Tags
.
Untuk mengendalikan ini, anda memerlukan jadual pivot (seperti role_user
atau tag_post
). Dalam fasih:
- Model
User
akan mempunyairoles()
kaedah yang kembali$this->belongsToMany(Role::class);
- Dan model
Role
akan mempunyai kaedahusers()
yang melakukan kembali yang sama.
Kemudian anda boleh merebut data yang berkaitan seperti:
$ user = user :: cari (1); foreach ($ user-> peranan sebagai peranan $) { echo $ role-> name; }
Anda juga boleh melampirkan atau melepaskan hubungan:
- Lampirkan:
$user->roles()->attach($roleId);
- Dapatkan:
$user->roles()->detach($roleId);
Ini sangat berguna apabila berurusan dengan tag, keizinan, kategori, dan banyak lagi.
Itulah idea teras di sebalik ketiga -tiga hubungan yang fasih ini. Mereka tidak sukar apabila anda melihat bagaimana mereka memetakan sambungan dunia nyata ke dalam kod-hanya ingat model mana yang memiliki kunci asing dan bagaimana kaedah menunjuk antara satu sama lain.
Atas ialah kandungan terperinci Apakah hubungan yang fasih (satu-satu, satu-ke-banyak, banyak-banyak)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Artikel ini membawakan anda pengetahuan yang berkaitan tentang Laravel terutamanya memperkenalkan kepada anda pelaksanaan penguncian optimistik dalam model Laravel Eloquent. Rakan-rakan yang berminat boleh lihat di bawah.

Pembangunan Laravel: Bagaimana untuk menggunakan LaravelEloquent untuk melaksanakan persatuan polimorfik? Perkaitan polimorfik ialah ciri penting Laravel Eloquent, yang membolehkan satu model mewujudkan perhubungan dengan berbilang model yang berbeza. Dalam aplikasi praktikal, pemprosesan jenis data yang berbeza adalah agak mudah dan cekap, terutamanya dalam reka bentuk pangkalan data. Dalam artikel ini, kita akan membincangkan cara melaksanakan persatuan polimorfik menggunakan Laravel Eloquent. 1. Apakah persatuan polimorfik? Polimorfisme

Menukar tatasusunan kepada objek menggunakan Eloquent dalam Laravel memerlukan langkah berikut: Cipta model Eloquent. Gunakan kaedah pilih Eloquent untuk mendapatkan hasil dan tukarkannya kepada tatasusunan. Gunakan ArrayObject untuk menukar tatasusunan kepada objek. Mendapat harta objek untuk mengakses nilai tatasusunan.

Laravel ialah rangka kerja PHP popular yang merangkumi perpustakaan ORM (Object Relational Mapping) yang berkuasa-LaravelEloquent. Pustaka ini sangat berkuasa dan boleh membantu kami melaksanakan perkaitan model dengan mudah, menjadikannya lebih mudah untuk mengurus dan membuat pertanyaan data. Tetapi ramai pembangun tidak tahu cara menggunakan Laravel Eloquent untuk melaksanakan perkaitan model. Dalam artikel ini, saya akan memperkenalkan cara melaksanakan persatuan model menggunakan Laravel Eloquent. 1. Laravel

Laravel ialah rangka kerja web PHP popular yang popular kerana kesederhanaan dan kemudahan penggunaannya. Rangka kerja Laravel terkenal dengan pelaksanaan EloquentORM yang sangat baik, pemetaan Object-RelationalMini yang menyokong penggunaan PHP untuk mentakrifkan model pangkalan data dan menyediakan interaksi pangkalan data yang mudah berdasarkan model ini. Artikel ini akan memperincikan cara membina model menggunakan Laravel Eloquent untuk berinteraksi dengan pangkalan data dengan cepat dan boleh dipercayai.

Pembangunan Laravel: Bagaimana untuk membina model pangkalan data menggunakan LaravelEloquent? Laravel ialah rangka kerja PHP popular yang menyediakan alat operasi pangkalan data yang berkuasa dan mudah digunakan - Laravel Eloquent. Pada masa lalu, menggunakan PHP untuk operasi pangkalan data tidak dapat tidak memerlukan menulis sejumlah besar pernyataan SQL yang panjang dan kod yang menyusahkan Walau bagaimanapun, menggunakan Laravel Eloquent boleh membina model pangkalan data dengan mudah dan mencapai pembangunan dan penyelenggaraan yang pantas. Artikel ini

Untuk membuat rekod baru dalam pangkalan data menggunakan fasih, terdapat empat kaedah utama: 1. Gunakan kaedah membuat untuk membuat rekod dengan cepat dengan lulus dalam array atribut, seperti pengguna :: create (['name' => 'Johndoe', 'e -mel' => 'John@example.com']); 2. Gunakan kaedah simpan untuk secara manual meniru model dan menetapkan nilai untuk menyimpan satu demi satu, yang sesuai untuk senario di mana tugasan bersyarat atau logik tambahan diperlukan; 3. Gunakan FirstOrcreate untuk mencari atau membuat rekod berdasarkan keadaan carian untuk mengelakkan data pendua; 4. Gunakan UpdateOrcreate untuk mencari rekod dan kemas kini, jika tidak, buatnya, yang sesuai untuk memproses data yang diimport, dan lain -lain, yang mungkin berulang.

Memandangkan keperluan pembangun untuk interaksi data terus berkembang, ORM telah menjadi bahagian yang amat diperlukan dalam pembangunan moden. Ia boleh menyembunyikan operasi pangkalan data di latar belakang dan menyediakan API yang dipermudahkan untuk operasi CRUD. Di antara perpustakaan ORM ini, Eloquent telah menarik perhatian ramai pembangun kerana ia telah digunakan secara meluas dalam rangka kerja Laravel. Dalam PHP 8.0, Eloquent datang sebagai perpustakaan sambungan kendiri dan kini boleh digunakan dalam projek anda. Dalam artikel ini kita akan meneroka Eloq
