AsArrayObject::class,]; "속성"이 이미 Eloquent 모델 속성이고 그렇지 않기 때문에 문제를 일으키는 것 같습니다. 별칭이 없는 것 같습니다. 열 이름 지정입니다. 따라서 이 줄은 다음과 같습니다: $this->attribute">
"속성"이라는 열이 있는 테이블이 있는 postgres 데이터베이스가 있습니다.
속성 열은 jsonb 유형이므로 Eloquent 변환을 사용합니다.
보호된 $casts = [ '속성' => AsArrayObject::class, ];"속성"이 이미 Eloquent 모델 속성이고 별칭 열 이름에 대한 규정이 없는 것 같기 때문에 이는 문제를 일으키는 것 같습니다.
이 줄은 다음과 같습니다.
$this->attributes['a_property_of_the_attributes_jsonb_field'] = '안녕하세요!';내 데이터베이스 테이블의 '속성' 필드가 아닌 내부 Eloquent 모델 속성에 액세스하는 것으로 나타납니다. 그 결과 다음 오류가 발생합니다.
SQLSTATE[42703]: 정의되지 않은 열: 7 오류: "mytable" 관계의 "a_property_of_the_attributes_jsonb_field" 열이 존재하지 않습니다. 라인 1: "mytable" 세트 "a_property_of_the_attributes_jsonb_field" = $1 여기서 "mypk" = ...
PHP가 아닌 다른 프로젝트가 데이터베이스를 사용하고 있기 때문에 열 이름을 바꿀 수 없습니다.
내 모델의 속성 필드에 ArrayObject로 어떻게 액세스하나요?
간단한 해결책은 ArrayObject 접근자 메서드를 사용하는 것입니다.
으아악참고: 기본 jsonb 필드에 배열로 액세스하려면 "속성" 변환을 정의해야 합니다.
으아악