Что значит VID

12

Я разработал представление и вижу этот запрос в разделе предварительного просмотра:

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')

Что vidзначит здесь?

На самом деле мне это нужно, потому что, когда я пытаюсь вставить простое правило, чтобы вставить строку в crm_history, используя этот запрос:

$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) . "')");

Он заполняет таблицу базы данных, но не отображается в представлении. Он показывает только вид, когда я добавляю через страницу создания контента.

doelleri
источник

Ответы:

24

К сожалению, VID может означать несколько вещей. Это не идеально, но я не видел, чтобы это вызывало проблемы (кроме легкой путаницы время от времени).

В контексте узлов это означает «идентификатор версии». Для каждого узла в таблице узлов Drupal может сохранить несколько версий в таблице node_revisions. Идентификатор версии - это уникальный идентификатор в таблице node_revisions. (Это видео, которое вы видите в своем запросе.)

В контексте таксономии vid означает «идентификатор словаря». Словарь - это набор связанных терминов. Каждый словарь имеет уникальный идентификатор.

В контексте модуля Views vid означает «view id».

С другой стороны, вы не должны добавлять узлы в базу данных с помощью пользовательских запросов. Лучший способ - создать объект узла и позволить drupal записать его в базу данных с помощью node_save().

marcvangend
источник
5

На странице ссылки на объект узла Drupal node-> vid является идентификатором ревизии текущей версии узла.

Содержимое узла хранится не непосредственно в таблице узлов, а в таблице node_revisions. На этой странице есть хорошее объяснение структуры таблиц .

alxp
источник
2

vidэто идентификатор ревизии. В Drupal каждый узел может иметь несколько ревизий. Если вы не используете ревизии, то nid(идентификатор узла) будет равен vid.

Greg
источник
Но если вы не используете ревизии, не рассчитывайте, что nid всегда равен vid!
Грег
Может ли кто-нибудь привести примеры запросов для вставки данных в контент, чтобы я мог видеть содержимое в представлении .. срочно, ребята
@rakeshakurathi - посмотрите исходный код Node Clone. Одна из немногих вещей, которые он делает, это вставляет новые узлы, поэтому должно быть легко найти соответствующий код в его источнике. drupal.org/project/node_clone
Грег