>  기사  >  백엔드 개발  >  Laravel의 추가 피벗 필드와 ModelRelationship을 동기화하는 방법은 무엇입니까?

Laravel의 추가 피벗 필드와 ModelRelationship을 동기화하는 방법은 무엇입니까?

DDD
DDD원래의
2024-10-19 17:58:30215검색

How to Sync ModelRelationships with Additional Pivot Fields in Laravel?

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

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