Sự khác biệt giữa Trường và Trường sơ thẩm?


15

Khi chúng ta đi đến đường dẫn /admin/structure/types/manage/article/fieldsvà sử dụng Add new fieldtùy chọn hoặc Add existing fieldtùy chọn, điều đó có tạo ra một trường, tạo một thể hiện trường hoặc đính kèm một thể hiện trường không? Làm thế nào để phân biệt giữa chúng? Vì vậy, theo lập trình, khi nào nên sử dụng API trường_create_field , field_create_instance và field_attach?

Trong tài liệu API trường, nó chỉ đề cập đến giao diện người dùng quản trị viên và không bao giờ nói về đường dẫn tạo cả trường và trường. Thật khó hiểu. Tôi thậm chí không biết nếu tôi thậm chí có ý nghĩa.


Điều này sẽ làm sáng tỏ nó: dikini.net / 31/08010/2010
Clive

và trong trường hợp bình thường, mỗi trường mà bạn thêm sẽ tạo một trường mới trong cơ sở dữ liệu và khi bạn thêm một trường hiện có, nó không tạo một bảng mới mà chỉ thêm nó vào bảng hiện có.
Mohammed Shameem

1
@Mohammed Shameem, cảm ơn rồi sao? Trường hợp sử dụng là gì? Hay đúng hơn là chúng ta sử dụng nó trong thực tế?
Eugene Gerome

1
luôn luôn tốt hơn để sử dụng cùng một thể hiện trường nếu mục đích là hoặc chức năng sẽ giống nhau. ví dụ: bạn có loại nội dung khác nhau với cùng một từ phân loại được thêm vào. sẽ tốt hơn nếu thêm cùng một trường vào tất cả các loại nội dung thay vì tạo các trường khác nhau cho từng loại nội dung. Trong nội bộ, điều này sẽ làm giảm số lượng bảng được xây dựng bởi drupal. và tìm kiếm trên vocab sẽ trở nên tốt hơn.
Mohammed Shameem

1
Vì vậy, các trường mà chúng ta thấy tại đường dẫn node/add/articlelà các trường hợp trường (được sử dụng lại ở một số loại thực thể khác nhau). Và các trường tại đường dẫn /admin/structure/types/manage/article/fieldslà các trường. Trong cơ sở dữ liệu tôi không thấy bảng thể hiện trường mà chỉ có bảng field_data mà tôi đoán, chúng ta sẽ nhận được khi lần đầu tiên tạo trường tại đường dẫn /admin/structure/types/manage/article/fieldsbằng cách sử dụng field_create_field. Và một thể hiện sau đó được đính kèm vào một gói (bài viết trong trường hợp này) mà chúng ta thấy ở đường dẫn node/add/article.
Eugene Gerome

Câu trả lời:


24

Một lĩnh vực là định nghĩa cơ bản của chính một lĩnh vực. Một thể hiện trường là một thể hiện của trường đó, được đính kèm với một thực thể / gói.

  1. Các trường được tạo với field_create_field
  2. Trường hợp trường, với field_create_instance

Để kiểm tra xem trường hoặc trường hợp tồn tại, sử dụng

  1. trường_info_field hoặc
  2. lĩnh vực_info_instance

Khi bạn tạo một trường thông qua UI, Drupal luôn tạo một thể hiện trường trên thực thể / gói đó.

Nếu bạn đang thêm một trường hiện có, dữ liệu trường được sao chép và một trường hợp trường được tạo trên thực thể / gói mới.

Cuối cùng, cài đặt trường áp dụng toàn cầu cho trường đó, cài đặt thể hiện trường có thể khác nhau giữa các gói thực thể.


2
Cảm ơn rất nhiều, bạn đã xóa tan nghi ngờ của tôi. Nếu tôi có đặc quyền tôi sẽ +1 bài viết của bạn.
Eugene Gerome
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.