>  Q&A  >  본문

Laravel 9 Eloquent 모델 - 모델에 유지된 열 이름

<p>"속성"이라는 열이 있는 테이블이 있는 postgres 데이터베이스가 있습니다. </p> <p>속성 열은 jsonb 유형이므로 Eloquent 변환을 사용합니다. </p> <pre class="lang-php Prettyprint-override"><code>보호된 $casts = [ '속성' => AsArrayObject::class, ]; <p>"속성"이 이미 Eloquent 모델 속성이고 별칭 열 이름에 대한 규정이 없는 것 같기 때문에 이는 문제를 일으키는 것 같습니다. </p> <p>이 줄은 다음과 같습니다.</p> <pre class="lang-php Prettyprint-override"><code>$this->attributes['a_property_of_the_attributes_jsonb_field'] = '안녕하세요!'; <p>내 데이터베이스 테이블의 '속성' 필드가 아닌 내부 Eloquent 모델 속성에 액세스하는 것으로 나타납니다. 그 결과 다음 오류가 발생합니다. </p> <pre class="brush:php;toolbar:false;">SQLSTATE[42703]: 정의되지 않은 열: 7 오류: "mytable" 관계의 "a_property_of_the_attributes_jsonb_field" 열이 존재하지 않습니다. 라인 1: "mytable" 세트 "a_property_of_the_attributes_jsonb_field" = $1 여기서 "mypk" = ...</pre> <p>PHP가 아닌 다른 프로젝트가 데이터베이스를 사용하고 있기 때문에 열 이름을 바꿀 수 없습니다. </p> <p>내 모델의 속성 필드에 ArrayObject로 어떻게 액세스하나요? </p>
P粉309989673P粉309989673384일 전495

모든 응답(1)나는 대답할 것이다

  • P粉034571623

    P粉0345716232023-09-04 12:12:46

    간단한 해결책은 ArrayObject 접근자 메서드를 사용하는 것입니다.

    으아악

    참고: 기본 jsonb 필드에 배열로 액세스하려면 "속성" 변환을 정의해야 합니다.

    으아악

    회신하다
    0
  • 취소회신하다