Laravel Eloquent 모델에서 접근자 메서드의 profile_image
속성을 사용하고 속성이 비어 있거나 false인 경우 대체 값으로 /user.png
을 반환하려는 경우 모델에서 접근자를 정의할 수 있습니다. 방법은 다음과 같습니다.
<code class="language-php">class User extends Authenticatable { // 其他模型代码... public function getProfileImageAttribute($value) { return $value ? asset('/storage' . $value) : url('/user.png'); } }</code>
User
모델에서 이 접근자를 정의한 후에는 User
모델 인스턴스의 profile_image
속성에 액세스할 때마다 이 접근자 메서드를 거치게 됩니다. 값이 비어 있지 않으면($value
이 true로 평가됨) 해당 값을 기반으로 리소스 URL을 반환합니다. 그렇지 않으면 대체 URL /user.png
을 반환합니다.
그런 다음 블레이드 템플릿에서 다음을 직접 사용할 수 있습니다.
<code class="language-blade">auth()->user()->profile_image</code>
추가 논리가 필요하지 않습니다.
<code class="language-blade"><img alt="User Image" src="{{ auth()->user()->profile_image }}"></img></code>
메소드 이름이 왜 getProfileImageAttribute($value)
인가요?
Laravel의 Eloquent ORM에서 속성 접근자는 세 부분으로 구성된 명명 규칙을 사용하여 정의됩니다.
get
: 이는 해당 메서드가 getter 접근자임을 나타냅니다. 속성 값을 검색할 때 사용됩니다.
AttributeName
: 이 부분은 접근자를 정의하려는 속성의 이름을 나타냅니다. 이 경우에는 ProfileImage
입니다. 속성 이름은 일반적으로 "StudlyCaps" 대소문자를 사용합니다. 이는 이름의 각 단어가 대문자로 시작하고 단어 사이에 공백이나 밑줄이 없음을 의미합니다.
Attribute
: 이 부분은 해당 메소드가 속성 접근자임을 나타냅니다. 따라서 이들을 합치면 getProfileImageAttribute($value)
은 다음을 의미합니다.
get
: getter 접근자입니다. ProfileImage
: profile_image
속성에 사용됩니다. Attribute
: 속성 접근자입니다. 이 명명 규칙은 속성 접근자를 Eloquent 모델의 해당 속성에 자동으로 매핑하는 데 사용됩니다. $model->profile_image
속성 값을 검색하기 위해 profile_image
을 사용할 때, Laravel은 내부적으로 속성 값을 제공하기 위해 getProfileImageAttribute
이라는 접근자 메서드를 찾습니다. 이 규칙은 Laravel이 추가 구성 없이 필요에 따라 접근자 메서드를 자동으로 호출하는 데 도움이 됩니다.
위 내용은 라라벨 속성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!