Comment attribuer des valeurs de tableau croisé dynamique supplémentaires dans Laravel lors de la synchronisation d'un tableau ?

Mary-Kate Olsen
Libérer: 2024-10-19 17:52:02
original
783 Les gens l'ont consulté

How to Assign Additional Pivot Table Values in Laravel when Syncing an Array?

Synchronisation d'un tableau avec des champs pivots supplémentaires dans Laravel

La méthode Laravel sync() vous permet de synchroniser la relation d'un modèle avec un tableau d'ID associés. Mais que se passe-t-il si vous devez associer des valeurs de tableau croisé dynamique supplémentaires à ces identifiants ?

Attribuer des valeurs pivots à plusieurs modèles

L'exemple de documentation montre uniquement comment attribuer des valeurs pivots pour un seul modèle. Pour attribuer des valeurs à plusieurs modèles, utilisez la syntaxe suivante :

<code class="php">$user->roles()->sync([
    1 => ['expires' => true],
    2 => ['expires' => false],
    ...
]);</code>
Copier après la connexion

Cette syntaxe vous permet de spécifier des valeurs pivot pour chaque modèle associé à l'aide des paires clé-valeur du tableau.

Exemple avec Dynamic Valeurs pivots

Considérons un scénario dans lequel vous gérez la saisie d'un formulaire pour attribuer des intervenants à un événement. L'entrée est un tableau d'ID de haut-parleur et vous devez définir la colonne is_speaker dans le tableau croisé dynamique sur true.

Voici comment y parvenir :

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

$user->roles()->sync($syncData);</code>
Copier après la connexion

En utilisant array_fill() et array_combine(), vous pouvez créer un tableau de valeurs pivot avec les paires clé-valeur souhaitées, puis les synchroniser avec la relation du modèle.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!