Co oznacza vid

12

Zaprojektowałem widok i widzę to zapytanie w sekcji podglądu:

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

Co to vidznaczy tutaj?

Właściwie potrzebuję tego, ponieważ kiedy próbuję wstawić prostą regułę, aby wstawić wiersz do crm_history przy użyciu tego zapytania:

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

Wypełnia tabelę bazy danych, ale nie wyświetla się w widoku. Pokazuje tylko widok, gdy dodam przez stronę tworzenia treści.

doelleri
źródło

Odpowiedzi:

24

Niestety, vid może oznaczać wiele rzeczy. To nie jest idealne, ale nie widziałem, aby powodowało to problemy (inne niż łagodne zamieszanie od czasu do czasu).

W kontekście węzłów oznacza „identyfikator wersji”. Dla każdego węzła w tabeli węzłów Drupal może zapisać wiele wersji w tabeli węzłów. Identyfikator wersji jest unikalnym identyfikatorem w tabeli node_revisions. (To jest vid, który widzisz w swoim zapytaniu.)

W kontekście taksonomii vid oznacza „identyfikator słownika”. Słownictwo to zbiór powiązanych terminów. Każde słownictwo ma unikalny identyfikator.

W kontekście modułu Widoki vid oznacza „identyfikator widoku”.

Z drugiej strony nie należy dodawać węzłów do bazy danych za pomocą niestandardowych zapytań. Lepszą metodą jest utworzenie obiektu węzła i pozwolenie drupalowi na zapisanie go w bazie danych node_save().

marcvangend
źródło
5

Na stronie referencyjnej obiektu węzła Drupal , node-> vid jest identyfikatorem wersji bieżącej wersji węzła.

Zawartość węzła nie jest przechowywana bezpośrednio w tabeli węzłów, ale w tabeli węzłów. Na tej stronie znajduje się dobre objaśnienie struktur tabel .

alp
źródło
2

vidto identyfikator wersji. W Drupal każdy węzeł może mieć wiele wersji. Jeśli nie używasz wersji, nid(identyfikator węzła) będzie równy vid.

Greg
źródło
Ale gdy nie korzystasz z wersji, nie licz na to, że nid zawsze równa się vid!
Greg
czy ktoś może podać przykłady zapytania, aby wstawić dane do treści, tak
@rakeshakurathi - Spójrz na kod źródłowy Node Clone. Jedną z niewielu rzeczy, które robi, jest wstawianie nowych węzłów, więc zlokalizowanie odpowiedniego kodu w jego źródle powinno być łatwe. drupal.org/project/node_clone
Greg