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


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.