>백엔드 개발 >Golang >GORM은 사용자 정의 열을 사용하여 다대다 구성

GORM은 사용자 정의 열을 사용하여 다대다 구성

WBOY
WBOY앞으로
2024-02-13 11:20:09534검색

GORM 使用自定义列配置多对多

PHP 개발에서 데이터베이스 운영은 빼놓을 수 없는 부분입니다. 데이터베이스 운영 프레임워크인 GORM은 유연성과 강력한 기능으로 항상 개발자들의 선호를 받아왔습니다. 다대다 관계 처리 측면에서 GORM은 열 구성을 사용자 정의하는 기능을 제공하므로 개발자는 데이터 테이블 간의 관계를 보다 정확하게 제어할 수 있습니다. 이 기사에서는 PHP 편집기 Xigua가 GORM의 사용자 정의 열 구성 기능을 사용하여 다대다 관계를 처리하는 방법을 자세히 소개합니다. 도움이 되기를 바랍니다.

질문 내용

저는 다음 2개의 모델을 가지고 있습니다:

으아악

저는 이미 residue_residue_categories 테이블을 가지고 있습니다. 하지만 이 열은 다음과 같습니다.

  • id (정수)
  • residueid(int, 외래 키)
  • residuecategoryid(int, 외래 키)

추가 연결을 만들고 싶습니다. 예:

으아악

그러나 SQL은 다음을 생성합니다:

으아악

보시다시피 삽입 SQL의 열 이름이 올바르지 않습니다.

다음과 같은 다른 필드를 구성해 보았습니다.

으아악 으아악

근데 이상하게도 gorm은 간단하게 getbyid 中抛出: invalid 外键:residualid(관계를 추가하기 전)로 처리합니다. 이러한 사용자 정의 열 이름과의 관계를 어떻게 구성합니까?

Solution

저는 여러분의 문제를 해결하기 위해 작은 예를 만들었습니다. 먼저 코드를 공유한 다음 코드의 모든 관련 부분을 안내해 드리겠습니다.

으아악

이제 각 부분을 자세히 살펴보겠습니다.
구조의 정의가 많이 바뀌었습니다. 조인 테이블의 정의를 삽입하고 해당 열 이름을 덮어써야 합니다.

완전성을 위해 정의를 추가하는 것이므로 조인 테이블이 데이터베이스에 이미 있는 경우 무시해도 됩니다.

또 다른 변화는 데이터베이스에 데이터를 삽입하는 방법입니다. 먼저 상위 테이블(residuesresidue_categories)에 데이터를 삽입한 다음 residuesresidue_categories)中插入数据,然后您可以在 residue_residue_categories 조인 테이블에 연결을 추가할 수 있습니다.
디버거를 연결하지 않고 코드를 실행하더라도 데이터베이스로 전송된 SQL 문을 표시하기 위해 debug() 메서드를 추가했습니다.

논리를 간신히 보기 위해 일부 값을 프로그램에 하드코딩했지만 자신의 논리에 쉽게 적응할 수 있을 것입니다.
문제가 해결되면 알려주세요. 감사합니다!

위 내용은 GORM은 사용자 정의 열을 사용하여 다대다 구성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제