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