> 백엔드 개발 > PHP 튜토리얼 > Laravel의 추가 피벗 필드와 ModelRelationship을 동기화하는 방법은 무엇입니까?

Laravel의 추가 피벗 필드와 ModelRelationship을 동기화하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-10-19 17:58:30
원래의
301명이 탐색했습니다.

How to Sync ModelRelationships with Additional Pivot Fields in Laravel?

Laravel: 추가 피벗 필드가 있는 Sync()

Laravel에서 sync() 함수는 모델 관계를 ID 집합입니다. 그러나 동기화 시 추가 피벗 필드를 지정할 수도 있습니다.

기본 사용법:

Laravel 문서에 설명된 대로 간단한 ID 세트를 동기화할 수 있습니다. 다음과 같습니다:

<code class="php">$user->roles()->sync([1, 2, 3]);</code>
로그인 후 복사

피벗 필드와 동기화:

특정 피벗 테이블 값을 ID와 연결하려면 해당 값을 배열로 지정할 수 있습니다.

<code class="php">$user->roles()->sync([
    1 => ['expires' => true]
]);</code>
로그인 후 복사

이 예에서는 만료 필드가 true로 설정된 단일 피벗 행을 추가합니다.

사용자 정의 데이터가 있는 여러 피벗 레코드:

To 여러 모델을 사용자 정의 피벗 데이터와 동기화하려면 다음 구문을 사용할 수 있습니다.

<code class="php">$user->roles()->sync([
    1 => ['expires' => true],
    2 => ['expires' => false],
    ...
]);</code>
로그인 후 복사

이 예는 각각 고유한 만료 값을 갖는 두 가지 역할을 동기화합니다.

배열 입력의 예 :

ID를 받고 데이터를 배열로 피벗하는 경우 array_combine()을 사용하여 동기화 데이터를 생성할 수 있습니다.

<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>
로그인 후 복사

다음 지침에 따라 다음을 수행할 수 있습니다. Laravel의 사용자 정의 피벗 필드와 데이터를 효과적으로 동기화합니다.

위 내용은 Laravel의 추가 피벗 필드와 ModelRelationship을 동기화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿