Что означает vid
Я разработал представление и вижу этот запрос в разделе предварительного просмотра:
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) . "')");
Он заполняет таблицу базы данных, но не отображается в представлении. Он показывает только представление, когда я добавляю его через страницу создания контента.
3 answers
К сожалению, vid может означать несколько вещей. Это не идеально, но я не видел, чтобы это вызывало проблемы (кроме легкой путаницы время от времени).
В контексте узлов это означает "идентификатор версии". Для каждого узла в таблице узлов Drupal может сохранять несколько версий в таблице node_revisions. Идентификатор версии - это уникальный идентификатор в таблице node_revisions. (Это видео, которое вы видите в своем запросе.)
В контексте таксономии vid означает "идентификатор словаря".A словарь - это набор связанных терминов. Каждый словарь имеет уникальный идентификатор.
В контексте модуля представлений vid означает "идентификатор представления".
С другой стороны, вы не должны добавлять узлы в базу данных с помощью пользовательских запросов. Лучший способ - создать объект узла и позволить drupal записать его в базу данных с помощью node_save()
.
vid
является идентификатором редакции. В Drupal каждый узел может иметь несколько ревизий. Если вы не используете ревизии, то nid
(идентификатор узла) будет равен vid
.