Що означає вид


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

Він заповнює таблицю бази даних, але вона не відображається у вікні. Він відображає лише представлення даних, коли я додаю через сторінку створення вмісту.

Відповіді:


24

На жаль, vid може означати кілька речей. Це не ідеально, але я не бачив, щоб це спричиняло проблеми (крім легкої плутанини час від часу).

У контексті вузлів це означає "ідентифікатор версії". Для кожного вузла таблиці вузлів Drupal може зберігати кілька версій у таблиці node_reitions. Ідентифікатор версії - це унікальний ідентифікатор у таблиці node_reitions. (Це вид, який ви бачите у своєму запиті.)

У контексті систематики vid означає "ідентифікатор словника". Лексика - це сукупність споріднених термінів. Кожен словник має унікальний ідентифікатор.

У контексті модуля «Вид» вид означає «ідентифікатор перегляду».

З іншого боку, вам не слід додавати вузли до бази даних за допомогою спеціальних запитів. Кращий метод - створити об’єкт вузла і дозволити друпал записати його в базу даних за допомогою node_save().


5

На довідковій сторінці об’єкта вузла Drupal node-> vid - ідентифікатор редакції поточної версії вузла.

Вміст вузла зберігається не безпосередньо в таблиці вузлів, а в таблиці node_reitions. На цій сторінці є гарне пояснення структур таблиць .


2

vidідентифікатор редакції У Drupal кожен вузол може мати кілька змін. Якщо ви не використовуєте версії, то nid(ідентифікатор вузла) буде дорівнює vid.


Але, не використовуючи версії, не розраховуйте, що nid завжди дорівнює vid!
Грег

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

@rakeshakurathi - подивіться вихідний код для Node Clone. Однією з небагатьох речей, які вона робить, є вставлення нових вузлів, тому слід знайти легко знайти відповідний код у його джерелі. drupal.org/project/node_clone
Грег
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.