Maison >développement back-end >tutoriel php >Comment synchroniser un tableau avec plusieurs champs pivots dans Laravel ?
Synchronisation d'un tableau avec des champs pivots supplémentaires dans Laravel
Dans Laravel, la méthode sync() vous permet de gérer les plusieurs à- de nombreuses relations entre les modèles. Bien que la documentation fournisse des exemples de synchronisation d'une seule ligne pivot, elle n'explique pas explicitement comment associer des données pivot personnalisées à plusieurs lignes synchronisées.
La solution réside dans la spécification d'un tableau de données pivot pour chaque modèle associé que vous souhaitez synchroniser. En fournissant une paire clé-valeur où la clé est l'ID du modèle associé et la valeur est un tableau de valeurs de champ pivot, vous pouvez associer des données pivot supplémentaires à chaque ligne en cours de synchronisation.
Par exemple, considérons un modèle utilisateur. qui a une relation plusieurs-à-plusieurs avec un modèle de rôle. Le tableau croisé dynamique de cette relation comporte un champ d'expiration. Si vous souhaitez synchroniser trois rôles avec l'utilisateur, chacun avec une valeur d'expiration différente, vous pouvez le faire comme suit :
<code class="php">$user->roles()->sync([ 1 => ['expires' => true], 2 => ['expires' => false], 3 => ['expires' => null], ]);</code>
Cela synchronisera l'utilisateur avec trois ID de rôle et associera les valeurs d'expiration spécifiées. avec chaque ligne du tableau croisé dynamique.
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!