Laravel sync() 메서드를 사용하면 모델의 관계를 관련 ID 배열과 동기화할 수 있습니다. 하지만 추가 피벗 테이블 값을 이러한 ID와 연결해야 하는 경우에는 어떻게 해야 합니까?
문서 예제에서는 단일 모델에 대한 피벗 값을 할당하는 방법만 보여줍니다. 여러 모델에 값을 할당하려면 다음 구문을 사용하세요.
<code class="php">$user->roles()->sync([ 1 => ['expires' => true], 2 => ['expires' => false], ... ]);</code>
이 구문을 사용하면 배열 키-값 쌍을 사용하여 각 관련 모델에 대한 피벗 값을 지정할 수 있습니다.
이벤트에 발표자를 할당하기 위해 양식 입력을 처리하는 시나리오를 생각해 보세요. 입력은 스피커 ID의 배열이며 피벗 테이블의 is_speaker 열을 true로 설정해야 합니다.
이를 달성하는 방법은 다음과 같습니다.
<code class="php">$speakers = (array) Input::get('speakers'); // related ids $pivotData = array_fill(0, count($speakers), ['is_speaker' => true]); $syncData = array_combine($speakers, $pivotData); $user->roles()->sync($syncData);</code>
array_fill() 사용 및 array_combine()을 사용하면 원하는 키-값 쌍으로 피벗 값 배열을 생성한 다음 이를 모델의 관계와 동기화할 수 있습니다.
위 내용은 배열을 동기화할 때 Laravel에서 추가 피벗 테이블 값을 할당하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!