国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Jadual Kandungan
Menyediakan jadual pangkalan data
Menentukan hubungan dalam model
Bekerja dengan hubungan polimorfik
Petua dan gotchas biasa
Rumah rangka kerja php Laravel Melaksanakan hubungan fasih polimorfik di Laravel

Melaksanakan hubungan fasih polimorfik di Laravel

Jul 13, 2025 am 02:27 AM
eloquent

Ya, hubungan polimorfik di Laravel membolehkan model menjadi milik pelbagai model lain melalui satu persatuan. Untuk melaksanakannya: 1) Sediakan jadual pangkalan data dengan ID asing dan taip lajur (contohnya, Commentable_id dan Commentable_type); 2) Tentukan hubungan morphmany dalam model induk (pos dan video) yang menunjuk kepada model kanak -kanak (komen); 3) Tentukan hubungan morphto dalam model kanak -kanak (komen) untuk membolehkan resolusi dinamik; 4) Gunakan hubungan untuk mencipta dan mengambil rekod yang berkaitan, sambil memeriksa jenis apabila perlu. Petua utama termasuk memastikan ruang nama model yang betul dalam lajur _Type, pengindeksan untuk prestasi, dan secara pilihan menggunakan peta morph untuk mengelakkan menyimpan nama kelas penuh.

Melaksanakan hubungan fasih polimorfik di Laravel

Ya, hubungan polimorfik adalah ciri yang kuat dalam Orm fasih Laravel yang membolehkan model menjadi milik lebih daripada satu model lain pada satu persatuan. Mereka amat berguna apabila anda mahukan tingkah laku atau hubungan bersama di pelbagai model - seperti komen, suka, atau tag.

Melaksanakan hubungan fasih polimorfik di Laravel

Inilah cara melaksanakannya langkah demi langkah.

Melaksanakan hubungan fasih polimorfik di Laravel

Menyediakan jadual pangkalan data

Untuk menyokong hubungan polimorfik, anda memerlukan dua lajur utama dalam jadual anak anda:

  • Lajur ID asing (misalnya, commentable_id )
  • Lajur jenis yang menunjukkan model yang berkaitan (misalnya, commentable_type )

Sebagai contoh, jika anda mempunyai jadual comments yang boleh dilampirkan pada kedua -dua posts dan videos , penghijrahan anda akan kelihatan seperti:

Melaksanakan hubungan fasih polimorfik di Laravel
 Skema :: Create ('Comments', Function (Blueprint $ Table) {
    $ Table-> id ();
    $ Table-> Text ('Body');
    $ Table-> unsignedBigInteger ('Commentable_id');
    $ Table-> String ('Commentable_type');
    $ Table-> Timestamps ();
});

Bidang _type menyimpan nama kelas yang berkelayakan model yang berkaitan. Ini penting kerana Laravel menggunakannya secara dalaman untuk menyelesaikan model yang akan kembali.


Menentukan hubungan dalam model

Dalam model induk ( Post dan Video ), anda menentukan hubungan morphMany yang menunjuk kepada model kanak -kanak ( Comment ):

 // post.php
Komen Fungsi Awam ()
{
    kembali $ this-> morphmany (komen :: kelas, 'boleh dikomentari');
}

// video.php
Komen Fungsi Awam ()
{
    kembali $ this-> morphmany (komen :: kelas, 'boleh dikomentari');
}

Di sisi kanak -kanak ( Comment ), anda menentukan hubungan morphTo :

 // comment.php
Fungsi awam boleh dikomentari ()
{
    kembali $ this-> morphto ();
}

Ini membolehkan anda mengambil jawatan atau video yang berkaitan dari contoh komen menggunakan $comment->commentable .


Bekerja dengan hubungan polimorfik

Setelah ditubuhkan, bekerja dengan hubungan ini merasakan sama seperti hubungan fasih yang lain.

Anda boleh membuat komen untuk siaran seperti ini:

 $ pos = pos :: cari (1);
$ Comment = Comment baru (['body' => 'artikel hebat!']);
$ Post-> Comments ()-> SAVE ($ COMMENT);

Dan pengambilan juga mudah:

 foreach ($ post-> komen sebagai $ komen) {
    echo $ comment-> body;
}

Jika anda berurusan dengan pelbagai jenis ulasan, anda boleh menyemak jenis model yang anda hadapi:

 $ commentable = $ comment-> commentable;

jika ($ commentable contoh postance) {
    // Lakukan sesuatu dengan catatan
} elseif ($ commentable contoh video) {
    // buat sesuatu dengan video
}

Petua dan gotchas biasa

  • Pastikan lajur commentable_type sepadan dengan ruang nama penuh model. Jika anda bergerak atau menamakan semula model kemudian, data sedia ada akan pecah melainkan anda mengemas kini rentetan tersebut.
  • Anda boleh mengindeks medan commentable_id dan commentable_type untuk prestasi, terutamanya jika anda mengharapkan pertanyaan berat.
  • Gunakan peta morph jika anda tidak mahu nama kelas penuh yang disimpan dalam pangkalan data. Ini membantu mengelakkan masalah apabila menamakan semula/bergerak model.

Persediaan asas adalah mudah, tetapi memahami bagaimana Laravel menyelesaikan jenis dan mengendalikan pertanyaan di belakang tabir membuat perbezaan besar apabila menyahpepijat atau mengoptimumkan.


Itu pada dasarnya. Sebaik sahaja jadual dan hubungan ditakrifkan, semuanya mengalir secara semulajadi - pastikan anda mengawasi penamaan konsistensi dan resolusi model.

Atas ialah kandungan terperinci Melaksanakan hubungan fasih polimorfik di Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Pelaksanaan penguncian optimistik dalam model Laravel Eloquent Pelaksanaan penguncian optimistik dalam model Laravel Eloquent Apr 21, 2023 pm 03:53 PM

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 melaksanakan persatuan polimorfik menggunakan Laravel Eloquent? Pembangunan Laravel: Bagaimana untuk melaksanakan persatuan polimorfik menggunakan Laravel Eloquent? Jun 13, 2023 pm 04:41 PM

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

Bagaimana untuk menggunakan Eloquent untuk menukar tatasusunan kepada objek dalam Laravel? Bagaimana untuk menggunakan Eloquent untuk menukar tatasusunan kepada objek dalam Laravel? Apr 29, 2024 pm 05:42 PM

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.

Pembangunan Laravel: Bagaimana untuk melaksanakan persatuan model menggunakan Laravel Eloquent? Pembangunan Laravel: Bagaimana untuk melaksanakan persatuan model menggunakan Laravel Eloquent? Jun 13, 2023 am 10:47 AM

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

Pembangunan Laravel: Bagaimana untuk membina model menggunakan Laravel Eloquent? Pembangunan Laravel: Bagaimana untuk membina model menggunakan Laravel Eloquent? Jun 14, 2023 am 10:14 AM

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 Laravel Eloquent? Pembangunan Laravel: Bagaimana untuk membina model pangkalan data menggunakan Laravel Eloquent? Jun 14, 2023 am 08:21 AM

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

Pustaka sambungan ORM dalam PHP8.0: Fasih Pustaka sambungan ORM dalam PHP8.0: Fasih May 14, 2023 am 10:22 AM

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

Bagaimana saya membuat rekod baru dalam pangkalan data menggunakan fasih? Bagaimana saya membuat rekod baru dalam pangkalan data menggunakan fasih? Jun 14, 2025 am 12:34 AM

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.

See all articles