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 중국어 웹사이트의 기타 관련 기사를 참조하세요!