>백엔드 개발 >PHP 튜토리얼 >Laravel sync() 함수를 사용하여 배열을 동기화하고 피벗 필드를 추가하는 방법

Laravel sync() 함수를 사용하여 배열을 동기화하고 피벗 필드를 추가하는 방법

Linda Hamilton
Linda Hamilton원래의
2024-10-19 17:57:02426검색

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

Laravel sync() 함수: 배열 동기화 및 피벗 필드 추가

Laravel sync() 함수를 사용하면 모델과 모델 간의 관계를 관리할 수 있습니다. 피벗 필드를 해당 필드와 연결합니다.

단일 피벗 행 연결

공식 문서에서 언급했듯이 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>

위 내용은 Laravel sync() 함수를 사용하여 배열을 동기화하고 피벗 필드를 추가하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.