首頁 >後端開發 >php教程 >如何使用 Laravelsync() 函數同步數組並新增透視字段

如何使用 Laravelsync() 函數同步數組並新增透視字段

Linda Hamilton
Linda Hamilton原創
2024-10-19 17:57:02426瀏覽

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

Laravelsync() 函數:同步陣列和新增透視欄位

Laravelsync() 函數可讓您管理模型和模型之間的關係資料透視表欄位與它們關聯起來。

關聯單一資料透視表

如官方文件中所提到的,您可以指定一組ID 來同步並關聯單一資料透視表值與下列ID 之一:

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

關聯多個資料透視表行

要將多個資料透視表值與多個ID 關聯,請建立一個ID 陣列作為鍵和陣列資料透視值作為值:

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

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

在上面的範例中,每個ID 都會對應到對應的資料透視值陣列。

自訂範例

假設您想要為一個事件指派多位發言人,並將每位發言人與「is_speaker」資料透視欄位相關聯。這是一個範例:

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

以上是如何使用 Laravelsync() 函數同步數組並新增透視字段的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn