Rumah >pembangunan bahagian belakang >tutorial php >Cara Menyegerakkan Tatasusunan dan Menambah Medan Pangsi dengan Fungsi Laravel sync()

Cara Menyegerakkan Tatasusunan dan Menambah Medan Pangsi dengan Fungsi Laravel sync()

Linda Hamilton
Linda Hamiltonasal
2024-10-19 17:57:02425semak imbas

How to Sync Arrays and Add Pivot Fields with the Laravel sync() Function

Laravel sync() Fungsi: Menyegerakkan Tatasusunan dan Menambah Medan Pangsi

Fungsi Laravel sync() membenarkan anda mengurus perhubungan antara model dan kaitkan medan pangsi dengannya.

Menghubungkan Baris Pangsi Tunggal

Seperti yang dinyatakan dalam dokumentasi rasmi, anda boleh menentukan tatasusunan ID untuk disegerakkan dan mengaitkan satu nilai pangsi dengan salah satu ID:

<code class="php">$user->roles()->sync(array(1 => array('expires' => true)));</code>

Menghubungkan Berbilang Baris Pangsi

Untuk mengaitkan berbilang nilai pangsi dengan berbilang ID, buat tatasusunan ID sebagai kunci dan tatasusunan nilai pangsi sebagai nilai:

<code class="php">$syncData = [
    1 => ['expires' => true],
    2 => ['expires' => false],
    ...
];

$user->roles()->sync($syncData);</code>

Dalam contoh di atas, setiap ID dipetakan kepada tatasusunan nilai pangsi yang sepadan.

Contoh Tersuai

Katakan anda ingin menetapkan berbilang pembesar suara kepada acara dan mengaitkan setiap pembesar suara dengan medan pangsi 'is_speaker'. Berikut ialah contoh:

<code class="php">$speakers  = (array) Input::get('speakers'); // related ids

// Create an array of pivot data with 'is_speaker' set to true for all speakers
$pivotData = array_fill(0, count($speakers), ['is_speaker' => true]);

// Combine the speakers array with the pivot data array
$syncData  = array_combine($speakers, $pivotData);

$user->roles()->sync($syncData);</code>

Atas ialah kandungan terperinci Cara Menyegerakkan Tatasusunan dan Menambah Medan Pangsi dengan Fungsi Laravel sync(). 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