AsArrayObject::class,]; "속성"이 이미 Eloquent 모델 속성이고 그렇지 않기 때문에 문제를 일으키는 것 같습니다. 별칭이 없는 것 같습니다. 열 이름 지정입니다. 따라서 이 줄은 다음과 같습니다: $this->attribute"> Laravel 9 Eloquent 모델 - 모델에 유지된 열 이름-PHP 중국어 네트워크 Q&A
Laravel 9 Eloquent 모델 - 모델에 유지된 열 이름
P粉309989673
P粉309989673 2023-09-03 14:36:02
0
1
466

"속성"이라는 열이 있는 테이블이 있는 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로 어떻게 액세스하나요?

P粉309989673
P粉309989673

모든 응답 (1)
P粉034571623

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

으아악

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

으아악
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿
    회사 소개 부인 성명 Sitemap
    PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!