>  기사  >  백엔드 개발  >  배열을 동기화할 때 Laravel에서 추가 피벗 테이블 값을 할당하는 방법은 무엇입니까?

배열을 동기화할 때 Laravel에서 추가 피벗 테이블 값을 할당하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-19 17:52:02786검색

How to Assign Additional Pivot Table Values in Laravel when Syncing an Array?

Laravel의 추가 피벗 필드와 배열 동기화

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

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