라라벨 속성

Barbara Streisand
Barbara Streisand원래의
2025-01-20 04:06:091001검색

Laravel Attributes

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에서 속성 접근자는 세 부분으로 구성된 명명 규칙을 사용하여 정의됩니다.

  1. get: 이는 해당 메서드가 getter 접근자임을 나타냅니다. 속성 값을 검색할 때 사용됩니다.

  2. AttributeName: 이 부분은 접근자를 정의하려는 속성의 이름을 나타냅니다. 이 경우에는 ProfileImage입니다. 속성 이름은 일반적으로 "StudlyCaps" 대소문자를 사용합니다. 이는 이름의 각 단어가 대문자로 시작하고 단어 사이에 공백이나 밑줄이 없음을 의미합니다.

  3. Attribute: 이 부분은 해당 메소드가 속성 접근자임을 나타냅니다. 따라서 이들을 합치면 getProfileImageAttribute($value)은 다음을 의미합니다.

    • get: getter 접근자입니다.
    • ProfileImage: profile_image 속성에 사용됩니다.
    • Attribute: 속성 접근자입니다.

이 명명 규칙은 속성 접근자를 Eloquent 모델의 해당 속성에 자동으로 매핑하는 데 사용됩니다. $model->profile_image 속성 값을 검색하기 위해 profile_image을 사용할 때, Laravel은 내부적으로 속성 값을 제공하기 위해 getProfileImageAttribute이라는 접근자 메서드를 찾습니다. 이 규칙은 Laravel이 추가 구성 없이 필요에 따라 접근자 메서드를 자동으로 호출하는 데 도움이 됩니다.

위 내용은 라라벨 속성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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