Bagaimana untuk Menyegerakkan ModelRelationships dengan Medan Pangsi Tambahan dalam Laravel?

DDD
Lepaskan: 2024-10-19 17:58:30
asal
211 orang telah melayarinya

How to Sync ModelRelationships with Additional Pivot Fields in Laravel?

Laravel: Sync() dengan Medan Pangsi Tambahan

Dalam Laravel, fungsi sync() digunakan untuk menyegerakkan perhubungan model dengan set ID. Walau bagaimanapun, anda juga boleh menentukan medan pangsi tambahan apabila menyegerak.

Penggunaan Lalai:

Seperti yang diterangkan dalam dokumentasi Laravel, anda boleh menyegerakkan set ID yang ringkas seperti ini:

<code class="php">$user->roles()->sync([1, 2, 3]);</code>
Salin selepas log masuk

Menyegerakkan dengan Medan Pangsi:

Jika anda ingin mengaitkan nilai jadual pangsi tertentu dengan ID, anda boleh menentukannya sebagai tatasusunan:

<code class="php">$user->roles()->sync([
    1 => ['expires' => true]
]);</code>
Salin selepas log masuk

Contoh ini menambah baris pangsi tunggal dengan medan tamat tempoh ditetapkan kepada benar.

Rekod Pivot Berbilang dengan Data Tersuai:

Kepada segerakkan berbilang model dengan data pangsi tersuai, anda boleh menggunakan sintaks berikut:

<code class="php">$user->roles()->sync([
    1 => ['expires' => true],
    2 => ['expires' => false],
    ...
]);</code>
Salin selepas log masuk

Contoh ini menyegerakkan dua peranan, setiap satu dengan nilai tamat tempohnya sendiri.

Contoh dengan Input Tatasusunan :

Jika anda menerima ID dan data pangsi sebagai tatasusunan, anda boleh menggunakan array_combine() untuk mencipta data penyegerakan:

<code class="php">$speakers = (array) Input::get('speakers'); // Get related IDs
$pivotData = array_fill(0, count($speakers), ['is_speaker' => true]);
$syncData = array_combine($speakers, $pivotData);

$user->roles()->sync($syncData);</code>
Salin selepas log masuk

Dengan mengikuti garis panduan ini, anda boleh menyegerakkan data dengan berkesan dengan medan pangsi tersuai dalam Laravel.

Atas ialah kandungan terperinci Bagaimana untuk Menyegerakkan ModelRelationships dengan Medan Pangsi Tambahan dalam Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber: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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!