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()
$tag = Tag::find(1); foreach ($tag->posts as $post) { $pivot = $post->pivot; $createdAt = $pivot->created_at; // do something with $createdAt }
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!