Làm cách nào để tạo bảng trong mô-đun tùy chỉnh


12

Trong Drupal 7, chúng tôi thường sử dụng hook_schema()tệp .install để tạo bảng. Tôi tin rằng, trong Drupal 8, bạn cũng có thể làm điều đó, nhưng tôi có ấn tượng rằng bạn nên tạo các tệp .yml với lược đồ của mình.

Phương pháp tạo bảng trong Drupal 8 là gì?


3
Không, bạn đã đúng. hook_schemavẫn là cách để tạo các bảng tùy chỉnh trong Drupal 8 không được mô tả bởi các thực thể hoặc trường nội dung . Nếu bảng tùy chỉnh của bạn là thứ bạn sẽ xem là "nội dung", thì tôi sẽ sử dụng các thực thể, nhưng nếu nó cần nhanh hơn và sẽ có số lượng hàng hạn chế và bạn không thực hiện bất kỳ bộ đệm nào ở mặt trước, thì bảng tùy chỉnh Ổn. Bạn cũng nên xem xét liệu bảng này có phải là "cấu hình" hay không, trong trường hợp đó một thực thể hoặc đối tượng cấu hình là con đường để đi.
mradcliffe

Câu trả lời:


9

hook_schema()vẫn được sử dụng từ các mô-đun Drupal 8 để tạo các bảng cơ sở dữ liệu tùy chỉnh được sử dụng từ mô-đun. Ngay cả các mô đun Người dùng và Node cũng thực hiện nó, mặc dù user_schema()node_schema()không xác định lược đồ cho các thực thể tương ứng, được tạo theo một cách khác.

Các sơ đồ cấu hình không được sử dụng để tạo bảng cơ sở dữ liệu tùy chỉnh một sử dụng mô-đun, nhưng mô tả cấu trúc của các file cấu hình. Tệp PDF được tìm thấy trong tài liệu tôi liên kết cho thấy rõ mối quan hệ giữa tệp cấu hình và lược đồ của nó.

ảnh chụp màn hình

Các thực thể nội dung không sử dụng hook_schema(); Drupal tạo bảng cơ sở dữ liệu cho chúng dựa trên các trường cơ sở mà lớp thực thể nội dung định nghĩa.

Phương pháp nào để sử dụng phụ thuộc vào những gì mô-đun xác định. Tùy thuộc vào mô-đun xác định thực thể nội dung, thực thể cấu hình hoặc chỉ sử dụng bảng tùy chỉnh. Một mô-đun thậm chí có thể sử dụng tất cả chúng.


8

Bạn có thể sử dụng hook install để tạo các bảng của riêng mình, nếu bạn thực sự muốn, mặc dù Drupal có nhiều giải pháp vượt trội khác. Nhưng nếu bạn muốn tự tạo, có một mô-đun ví dụ, được gọi là dbtng_example, trong mô-đun ví dụ: https://www.drupal.org/project/examples , hoàn thành với việc định tuyến để thêm và xóa các mục cơ sở dữ liệu tùy chỉnh của bạn.

Tôi khuyên bạn nên cài đặt nó và dùng thử, sau đó bạn có thể sử dụng nó làm cơ sở để tạo bảng cơ sở dữ liệu của riêng bạn trong Drupal 8.

Một cách tiếp cận khác để xem xét là tạo một thực thể cấu hình hoặc một thực thể nội dung.

Nếu bạn sử dụng công cụ dòng lệnh drupal, thậm chí còn có một lệnh để tạo ra "drupal created: entity: config" và "drupal created: entity: content".

Cũng trong mô-đun ví dụ, có config_entity_example và content_entity_example.

Từ https://www.preinglynext.com.au/blog/under Hiểu-dalal-8s-config-entities: "Sự khác biệt chính giữa các thực thể cấu hình và cấu hình là cách chúng được lưu trữ và (hiện tại) các thực thể cấu hình không thể thực hiện được ".

Có một số giải pháp khác ngoài hộp, chẳng hạn như mô-đun config_pages cho phép bạn dễ dàng quay vòng các địa điểm để lưu trữ dữ liệu trên trang web của mình: https://www.drupal.org/project/config_pages

Gần đây chúng tôi đã sử dụng những thứ này cho một trang đích, bằng cách tạo bộ điều khiển và tuyến đường. Điều này có lợi thế rất lớn so với bảng tùy chỉnh vì bạn có thể dễ dàng thêm các trường mới và bạn có thể sử dụng các loại dữ liệu như hình ảnh và tham chiếu thực thể một cách dễ dàng, bạn cũng có thể đặt trình định dạng trường và tải dữ liệu được định dạng bằng trình xây dựng chế độ xem thực thể config_pages.

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.