Vid có nghĩa là gì


12

Tôi đã thiết kế một khung nhìn và tôi thấy truy vấn này trong phần xem trước:

SELECT node.nid AS nid, 
       node_data_field_crm_history_brokerid.field_crm_history_brokerid_value AS node_data_field_crm_history_brokerid_field_crm_history_brokerid_value, 
       node.language AS node_language, 
       node.type AS node_type, 
       node.vid AS node_vid, 
       node_data_field_crm_history_brokerid.field_crm_history_caseid_value AS node_data_field_crm_history_brokerid_field_crm_history_caseid_value, 
       node_data_field_crm_history_brokerid.field_crm_history_dateadded_value AS node_data_field_crm_history_brokerid_field_crm_history_dateadded_value, 
       node_data_field_crm_history_brokerid.field_crm_history_entrydesc_value AS node_data_field_crm_history_brokerid_field_crm_history_entrydesc_value 
FROM node node 
LEFT JOIN content_type_crm_history node_data_field_crm_history_brokerid ON node.vid = node_data_field_crm_history_brokerid.vid 
WHERE node.type in ('crm_history')

Không gì vidcó nghĩa là ở đây?

Trên thực tế tôi cần điều này bởi vì khi tôi cố gắng chèn một quy tắc đơn giản để chèn một hàng trong crm_history bằng truy vấn này:

$result = db_query("INSERT INTO {content_type_crm_history} (vid, nid, field_crm_history_caseid_value, field_crm_history_brokerid_value, field_crm_history_dateadded_value, field_crm_history_entrydesc_value) VALUES (" . $node->nid . ", " . $node->vid . ", " . $caseid . ", " . $brokerid . ", " . $dateadded . ", '" . t($entrydesc) . "')");

Nó không điền vào bảng cơ sở dữ liệu nhưng nó không hiển thị trong dạng xem. Nó chỉ hiển thị chế độ xem khi tôi thêm thông qua trang tạo nội dung.

Câu trả lời:


24

Thật không may, vid có thể có nghĩa là nhiều thứ. Điều đó không lý tưởng, nhưng tôi chưa thấy nó gây ra vấn đề gì (ngoài sự nhầm lẫn nhẹ bây giờ).

Trong ngữ cảnh của các nút, nó có nghĩa là 'id phiên bản'. Đối với mỗi nút trong bảng nút, Drupal có thể lưu nhiều phiên bản trong bảng node_Vvutions. Id phiên bản là mã định danh duy nhất trong bảng node_Vvutions. (Đây là vid bạn thấy trong truy vấn của mình.)

Trong bối cảnh phân loại học, vid có nghĩa là 'id từ vựng'. Một từ vựng là một tập hợp các thuật ngữ liên quan. Mỗi từ vựng có một id duy nhất.

Trong ngữ cảnh của mô-đun Lượt xem, vid có nghĩa là 'id xem'.

Trên một lưu ý khác, bạn không nên thêm các nút vào cơ sở dữ liệu bằng các truy vấn tùy chỉnh. Phương pháp tốt hơn là tạo một đối tượng nút và để drupal ghi nó vào cơ sở dữ liệu bằng cách sử dụng node_save().


5

Từ trang tham chiếu đối tượng nút Drupal, nút- > vid là id sửa đổi của phiên bản hiện tại của nút.

Nội dung nút không được lưu trữ trực tiếp trong bảng nút mà trong bảng node_Vvutions. Có một lời giải thích tốt về các cấu trúc bảng trên trang này .


2

vidlà id sửa đổi. Trong Drupal, mỗi nút có thể có nhiều phiên bản. Nếu bạn không sử dụng bản sửa đổi, thì nid(ID nút) sẽ bằng vid.


Nhưng, khi không sử dụng bản sửa đổi, đừng tin vào nid luôn bằng vid!
Greg

bất kỳ ai cũng có thể đưa ra ví dụ về truy vấn để chèn dữ liệu vào nội dung để tôi có thể xem nội dung trong chế độ xem .. những người khẩn cấp

@rakeshakurathi - Hãy xem mã nguồn của Node Clone. Một trong số ít những gì nó làm là chèn các nút mới, vì vậy nó sẽ dễ dàng xác định vị trí mã liên quan trong nguồn của nó. drupal.org/project/node_clone
Greg
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.