Eloquent 모델에 사용자 정의 속성을 어떻게 추가할 수 있나요?
Eloquent 모델에 사용자 정의 속성 추가
사용자 정의 속성으로 Laravel/Eloquent 모델을 보강하는 기능은 모델 표현을 향상하는 데 필수적입니다. 기본적으로 모델은 테이블 열에 해당하는 속성을 노출합니다. 그러나 데이터베이스를 쿼리하지 않고 추가 데이터나 계산에 액세스하는 것이 바람직한 경우가 많습니다.
한 가지 과제는 모델이 로드될 때 사용자 정의 속성을 채우는 것입니다. 기본 toArray() 메서드는 테이블 열에 직접 매핑되지 않는 접근자를 제외합니다. 이 제한을 극복하려면:
Laravel 버전 >= 8:
getter 함수와 함께 Attribute 클래스를 사용하세요. 이를 통해 테이블 열과 직접적인 관련이 없는 사용자 정의 속성을 정의할 수 있습니다.
<code class="php">class EventSession extends Eloquent { ... public function availability() { return new Attribute( get: fn () => $this->calculateAvailability() ); } ... }</code>
Laravel 버전 < 8:
두 가지 옵션을 사용할 수 있습니다.
옵션 1: 명시적 속성 설정
toArray() 메서드를 재정의하고 수동으로 할당 사용자 정의 속성.
<code class="php">class Book extends Eloquent { ... public function toArray() { $array = parent::toArray(); $array['upper'] = $this->upper; return $array; } public function getUpperAttribute() { return strtoupper($this->title); } ... }<p><strong>옵션 2: 사용자 정의 접근자를 통한 루프</strong></p> <p>변경된 모든 속성을 반복하고 이를 배열 표현에 적용합니다.</p> <pre class="brush:php;toolbar:false"><code class="php">class Book extends Eloquent { ... public function toArray() { $array = parent::toArray(); foreach ($this->getMutatedAttributes() as $key) { if (! array_key_exists($key, $array)) { $array[$key] = $this->{$key}; } } return $array; } ... }</code>
이러한 기술을 활용하여 개발자는 사용자 정의 속성으로 Eloquent 모델을 강화하여 표현을 풍부하게 하고 애플리케이션 기능을 강화할 수 있습니다.
위 내용은 Eloquent 모델에 사용자 정의 속성을 어떻게 추가할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Laravel Back End : Part 2, React가있는 React 앱 구축

PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법
