Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menyegerakkan Array dengan Pelbagai Medan Pangsi dalam Laravel?

Bagaimana untuk Menyegerakkan Array dengan Pelbagai Medan Pangsi dalam Laravel?

Susan Sarandon
Susan Sarandonasal
2024-10-19 17:53:29875semak imbas

How to Sync an Array with Multiple Pivot Fields in Laravel?

Menyegerakkan Tatasusunan dengan Medan Pangsi Tambahan dalam Laravel

Dalam Laravel, kaedah penyegerakan() membolehkan anda mengurus many-to- banyak hubungan antara model. Walaupun dokumentasi menyediakan contoh untuk menyegerakkan satu baris pangsi, ia tidak secara eksplisit menangani cara mengaitkan data pangsi tersuai dengan berbilang baris yang disegerakkan.

Penyelesaian terletak pada menentukan tatasusunan data pangsi untuk setiap model berkaitan yang anda mahu menyegerakkan. Dengan menyediakan pasangan nilai kunci yang kuncinya ialah ID model yang berkaitan dan nilainya ialah tatasusunan nilai medan pangsi, anda boleh mengaitkan data pangsi tambahan dengan setiap baris yang disegerakkan.

Sebagai contoh, pertimbangkan model Pengguna yang mempunyai hubungan banyak-ke-banyak dengan Role model. Jadual pangsi untuk perhubungan ini mempunyai medan tamat tempoh. Jika anda ingin menyegerakkan tiga peranan dengan pengguna, setiap satu dengan nilai tamat tempoh yang berbeza, anda boleh berbuat demikian seperti berikut:

<code class="php">$user->roles()->sync([
    1 => ['expires' => true],
    2 => ['expires' => false],
    3 => ['expires' => null],
]);</code>

Ini akan menyegerakkan pengguna dengan tiga ID peranan dan mengaitkan nilai tamat tempoh yang ditentukan dengan setiap baris dalam jadual pangsi.

Atas ialah kandungan terperinci Bagaimana untuk Menyegerakkan Array dengan Pelbagai Medan Pangsi 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