필드 인스턴스와 필드 인스턴스의 차이점은 무엇입니까?


15

경로로 이동 /admin/structure/types/manage/article/fields하여 Add new field옵션 또는 옵션을 사용할 때 Add existing field필드를 작성하거나 필드 인스턴스를 작성하거나 필드 인스턴스를 첨부합니까? 그것들을 구별하는 방법? 그래서 프로그래밍 방식으로 field_create_field , field_create_instance 및 field_attach API 를 사용할 때 ?

필드 API 문서에서는 관리 UI 만 언급하고 필드와 필드 인스턴스를 모두 생성 할 경로에 대해서는 언급하지 않습니다. 혼란 스러워요. 이해가되는지조차 모르겠습니다.


이것은을 신비성을해야합니다 dikini.net/31.08.2010/...
클라이브

일반적으로 추가하는 각 필드는 데이터베이스에 새 필드를 만들고 기존 필드를 추가 할 때 새 테이블을 만들지 않고 기존 테이블에 추가합니다.
Mohammed Shameem

1
@Mohammed Shameem, 감사합니다. 인스턴스 란 무엇입니까? 사용 사례는 무엇입니까? 아니면 실제로 어디에서 사용합니까?
유진 제롬

1
목적이 같거나 기능이 동일 할 경우 항상 동일한 필드 인스턴스를 사용하는 것이 좋습니다. 예를 들어 동일한 분류 체계 어휘를 가진 다른 컨텐츠 유형이 모두 추가됩니다. 각 컨텐츠 유형마다 다른 필드를 작성하는 대신 모든 컨텐츠 유형에 동일한 필드를 추가하는 것이 좋습니다. 내부적으로 이것은 drupal에 의해 빌드되는 테이블 수를 줄입니다. 어휘 검색이 더 좋아질 것입니다.
Mohammed Shameem

1
경로에서 볼 수있는 node/add/article필드는 필드 인스턴스 (여러 다른 엔티티 유형에서 재 사용됨)입니다. 그리고 경로 /admin/structure/types/manage/article/fields의 필드는 필드입니다. 데이터베이스에는 필드 인스턴스 테이블이 표시되지 않지만 field_data 테이블 만 표시 /admin/structure/types/manage/article/fields됩니다 field_create_field. 그런 다음 path에서 볼 수있는 번들 (이 경우 기사)에 인스턴스가 첨부됩니다 node/add/article.
유진 제롬

답변:


24

필드는 필드 자체의 기본 정의입니다. 필드 인스턴스 는 엔티티 / 번들에 연결된 해당 필드의 인스턴스입니다.

  1. field_create_field로 필드가 생성됩니다
  2. field_create_instance가있는 필드 인스턴스

필드 또는 인스턴스가 존재하는지 확인하려면

  1. field_info_field 또는
  2. field_info_instance

UI를 통해 필드를 만들면 Drupal은 항상 해당 엔티티 / 번들에 필드 인스턴스를 만듭니다.

기존 필드를 추가하는 경우 필드 데이터가 복제되고 새 엔티티 / 번들에 필드 인스턴스가 작성됩니다.

마지막으로 필드 설정은 해당 필드에 전체적으로 적용되며 필드 인스턴스 설정은 엔티티 번들마다 다를 수 있습니다.


2
고마워, 당신은 내 의심을 해결했다. 내가 특권을 가졌다면 나는 당신의 게시물을 +1 할 것입니다.
Eugene Gerome
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.