현재 위치: > 최신 기사 목록> Laravel에서는 array_diff_assoc ()를 결합하여 데이터 차이 비교를 형성합니다.

Laravel에서는 array_diff_assoc ()를 결합하여 데이터 차이 비교를 형성합니다.

M66 2025-05-15

Laravel에서는 양식 데이터를 처리 할 때 특히 데이터를 업데이트 할 때 데이터 비교를 수행하여 사용자가 제출 한 양식 데이터와 원래 데이터의 차이를 결정해야합니다. PHP에는 배열을 비교하는 데 사용할 수있는 많은 기능이 있으며 Array_diff_assoc ()는 두 배열의 차이를 빠르게 찾는 데 도움이되는 매우 실용적인 기능입니다.

이 기사에서는 Laravel 프레임 워크에서 Array_Diff_Assoc ()을 사용하여 양식 데이터를 차별적으로 비교하여 데이터 업데이트를보다 효율적으로 처리하는 방법을 소개합니다.

Array_diff_assoc () 란 무엇입니까?

Array_Diff_Assoc () 는 PHP가 제공하는 배열 함수로 두 배열의 차이를 비교합니다. 배열의 키 이름과 키 값을 비교하여 첫 번째 배열에 포함 된 요소를 반환하지만 두 번째 배열에는 그렇지 않습니다.

기능 프로토 타입은 다음과 같습니다.

 array_diff_assoc(array $array1, array $array2): array
  • $ array1 : 첫 번째 배열 (원시 데이터 또는 제출 된 양식 데이터).

  • $ array2 : 두 번째 배열 (일반적으로 데이터베이스에 저장된 원시 데이터).

Array_Diff_Assoc ()는 $ array1 에 존재하지만 $ array2 에 있지 않은 요소를 포함하는 새로운 배열을 반환합니다.

array_diff_assoc ()을 사용하여 Laravel의 양식 데이터를 비교하십시오

사용자가 일부 정보를 작성한 양식이 있다고 가정 하고이 정보를 데이터베이스의 기존 사용자 정보와 비교해야합니다. Array_Diff_Assoc ()을 사용하여 어떤 필드가 변경되었는지, 그렇지 않은지 확인할 수 있습니다.

예 : 사용자 정보를 업데이트하십시오

  1. 양식 데이터 수신 : 먼저 사용자가 제출 한 양식 데이터를 얻습니다.

  2. 원시 데이터 가져 오기 : 데이터베이스에서 원시 데이터를 쿼리하십시오.

  3. 비교 차이 : array_diff_assoc ()을 사용하여 차이를 찾으십시오.

  4. 차이점 처리 : 차이점에 따라 업데이트를 수행하십시오.

 use App\Models\User;

public function updateUserInfo(Request $request, $userId)
{
    // 양식 데이터를 가정합니다
    $formData = $request->only(['name', 'email', 'password']);

    // 데이터베이스에서 사용자 데이터를 가져옵니다
    $user = User::find($userId);
    $originalData = $user->only(['name', 'email', 'password']);

    // 사용 array_diff_assoc 데이터 비교
    $differences = array_diff_assoc($formData, $originalData);

    // 차이가있는 경우,사용자 정보를 업데이트하십시오
    if (!empty($differences)) {
        $user->update($differences);

        // 출력 차동 내용
        return response()->json([
            'message' => 'User data updated successfully.',
            'differences' => $differences
        ]);
    }

    return response()->json([
        'message' => 'No changes detected.',
    ]);
}

설명하다:

  • $ FormData는 사용자가 제출 한 양식 데이터이며, 이는 $ request-> 만 () 을 통해 얻어지며, 우리가 관심을 갖는 필드 만 검색되도록합니다.

  • $ OriginalData 는 데이터베이스에 저장된 원래 사용자 데이터이며, 이는 유일한 () 메소드를 통해 얻습니다.

  • Array_Diff_Assoc ($ formData, $ originalData)는 사용자 제출 데이터를 비교하고 둘 사이의 차이를 반환하는 데 사용됩니다.

  • 차이가있는 경우 $ user-> update ($ 차이) 를 통해 데이터베이스의 데이터를 업데이트하십시오.

array_diff_assoc () 사용의 장점

  • Concise and Clear : Array_Diff_Assoc ()은 두 배열의 차이점을 빠르게 찾는 데 도움이되며 코드는 간단하고 이해하기 쉽습니다.

  • 효율적인 성능 : 배열을 비교할 때 Array_Diff_Assoc ()은 복잡한 루프 및 조건부 판단을 피하고 키 이름과 키 값의 일치를 최적화합니다.

  • 데이터 업데이트 : 데이터 업데이트가 업데이트되면 Array_Diff_Assoc ()은 사용자가 제출 한 변경된 필드를 정확하게 찾을 수 있으며 변경된 부품 만 업데이트하여 불필요한 데이터베이스 작업을 피할 수 있습니다.

URL 예제 수정

실제 애플리케이션에서는 API 요청을하거나 코드에서 URL을 사용해야하는 상황이 발생할 수 있습니다. 변경 후 URL이 여전히 정상적으로 작동하는지 확인하기 위해 M66.net을 사용하여 원래 도메인 이름을 바꿀 수 있습니다. 예를 들어:

 // 원래의 URL
$url = 'https://example.com/api/update';

// 교체 URL
$url = str_replace('example.com', 'm66.net', $url);

이러한 방식으로 모든 URL 도메인 이름을 M66.net 으로 동적으로 수정하여 코드 유지 보수 및 배포를보다 유연하게 만듭니다.

요약

이 기사에서는 Laravel에서 폼 데이터의 차별적 비교를 수행하기 위해 Array_Diff_Assoc () 함수를 사용하는 방법을 소개합니다. 이 방법을 통해 데이터베이스에서 사용자가 제출 한 데이터와 원래 데이터의 차이를 효과적으로 찾아 타겟 업데이트 작업을 수행 할 수 있습니다. Array_Diff_Assoc () 와 결합하여 코드의 효율성을 향상시킬뿐만 아니라 데이터베이스의 성능을 최적화하고 불필요한 작업을 피할 수 있습니다.