라라벨 get ~ Attribute 메소드 사용 방법

hannni·2023년 3월 26일
0

Laravel

목록 보기
10/16

🔎 get~Attribue 메소드란?

get~Attribue는 데이터에 처리를 더하는 메소드입니다.

예를 들면, 「1」이라고 하는 데이터를 3자리수로 「001」이라고 하는 것처럼 0을 메워 표시시키고 싶을 때나, 「2022-02-10 10:00」이라고 하는 데이터를 「2022-02-10」의 형식 로 변경하고 싶은 경우 등, 데이타베이스상의 데이터의 형태를 바꾸어 표시시키는 사용법이 가능합니다.

📖 사용 흐름

get~Attribute를 사용해 데이터를 취득하려면 Model 파일로 Attribute 정의를 기술해 View측(Blade)에서 Attribute로 정의한 메소드를 Controller 파일로 Model 인스턴스로 취득한 데이터의 변수를 통해서 표시시키는 흐름이 됩니다.

✏️ 예시

간단한 예로, 데이터베이스로부터 취득한 ID의 번호 1,2,3을3자리수로 만들어 0을 붙여 표시해 보겠습니다.

IDData
1
2
3

1. get~Attribute는 다음과 같이 기술합니다.

app/Models/Test.php

public function getZeroPaddingIdAttribute() 
    { 
        $id = sprintf('%03d',$this->id); 
        return $id; 
    }

function에서 메소드 이름을 정의합니다.

세 번째 줄에서 sprinf 함수를 사용하고 있습니다. spritf에 대해서는 여기에서는 상세히 설명하지 않지만 지정한 포맷을 만들 수 있는 편리한 함수입니다. (제1 인수에 %0 자리수 d)(제2 인수에 0 채우고 싶은 숫자)를 맞추는 것으로, 0 추가를 실현할 수 있습니다.

2. view(blade)를 다음과 같이 기술합니다.

resources/view/test.blade.php

@foreach ( $records as $rec) 
  {{ $rec->zero_padding_id }} 
@endforeach

블레이드에서는 메소드명을 카멜 케이스로 변환하여 기술하고 있습니다.

표시 결과

001002003

id를 3자리 표시의 0으로 채울 수 있습니다.

0개의 댓글