Rumah  >  Artikel  >  rangka kerja php  >  Bagaimana untuk menanyakan atribut tambahan jadual perantaraan dalam laravel

Bagaimana untuk menanyakan atribut tambahan jadual perantaraan dalam laravel

PHPz
PHPzasal
2023-04-12 09:13:45657semak imbas

Dalam Laravel, jadual perantaraan biasanya digunakan untuk memproses perhubungan banyak-ke-banyak. Contohnya, blog boleh mempunyai berbilang tag dan tag boleh digunakan oleh berbilang blog. Perhubungan ini boleh dikendalikan menggunakan jadual perantaraan, yang menyimpan perhubungan yang sepadan antara setiap blog dan teg.

Walau bagaimanapun, dalam beberapa kes, jadual perantaraan mungkin perlu menyimpan data tambahan, seperti masa penciptaan perhubungan antara teg dan blog. Dalam kes ini, kita perlu menggunakan atribut tambahan jadual perantaraan untuk menyimpan data ini.

Menggunakan sifat tambahan jadual perantaraan boleh dicapai melalui "model jadual perantaraan" dalam Laravel. Kelas model ini digunakan untuk mengurus jadual perantaraan dan menyediakan banyak fungsi berguna, termasuk menanyakan sifat tambahan bagi jadual perantaraan.

Pertama, kita perlu mencipta kelas model jadual perantaraan. Kelas ini boleh dibuat menggunakan perintah Artisan:

php artisan make:model Taggable --pivot

Apabila menjalankan arahan ini, kita perlu memberikan nama jadual perantaraan, yang sepatutnya dinamakan "Table1_Table2" mengikut konvensyen Laravel.

Selepas mencipta model jadual perantaraan, kita boleh menentukan atribut tambahan jadual perantaraan dalam model yang berkaitan. Sebagai contoh, jika kita mempunyai model "blog" dan model "tag" dan mengaitkannya menggunakan jadual perantaraan, kita boleh mentakrifkan perkaitan seperti ini:

class Post extends Model
{
    public function tags()
    {
        return $this->belongsToMany(Tag::class)
                    ->using(Taggable::class)
                    ->withPivot('created_at');
    }
}

Dalam contoh ini, kami menggunakan The menentukan model jadual perantaraan sebagai using() dan menggunakan kaedah Taggable untuk menentukan atribut tambahan jadual perantaraan. withPivot()

Dengan cara ini kita boleh dengan mudah menanyakan jadual perantaraan untuk sifat tambahan. Contohnya, jika kita ingin menanyakan masa penciptaan perhubungan antara teg dan blog, kita boleh menggunakan kod berikut:

$tag = Tag::find(1);

foreach ($tag->posts as $post) {
    $pivot = $post->pivot;
    $createdAt = $pivot->created_at;
    // do something with $createdAt
}
Dalam contoh ini, kita mula-mula mendapatkan model teg, dan kemudian lulus Ahli Gabungan model Lawati blognya. Untuk setiap blog, kita boleh mendapatkan contoh model jadual perantaraan dan menggunakan sifatnya untuk mengakses sifat tambahan jadual perantaraan.

Ringkasnya, menggunakan sifat tambahan jadual perantaraan boleh memberikan lebih fleksibiliti dan fungsi apabila membangunkan perhubungan banyak-ke-banyak. Dengan menggunakan model jadual perantaraan dan menambah kaedah

semasa mentakrifkan perhubungan, kita boleh menanyakan sifat tambahan jadual perantaraan dan memanfaatkan sepenuhnya kuasa Laravel. withPivot()

Atas ialah kandungan terperinci Bagaimana untuk menanyakan atribut tambahan jadual perantaraan dalam laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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