Was bedeutet "vid"?

12

Ich habe eine Ansicht entworfen und sehe diese Abfrage im Vorschaubereich:

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

Was vidheißt hier?

Eigentlich brauche ich das, wenn ich versuche, eine einfache Regel einzufügen, um mit dieser Abfrage eine Zeile in crm_history einzufügen:

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

Die Datenbanktabelle wird zwar aufgefüllt, jedoch nicht in der Ansicht angezeigt. Es wird nur die Ansicht angezeigt, die ich über die Seite zum Erstellen von Inhalten hinzufüge.

doelleri
quelle

Antworten:

24

Leider kann vid mehrere Dinge bedeuten. Das ist nicht ideal, aber ich habe nicht gesehen, dass es Probleme verursacht (abgesehen von gelegentlicher leichter Verwirrung).

Im Kontext von Knoten bedeutet dies "Versions-ID". Für jeden Knoten in der Knotentabelle kann Drupal mehrere Versionen in der Tabelle node_revisions speichern. Die Versions-ID ist die eindeutige Kennung in der Tabelle node_revisions. (Dies ist das Video, das Sie in Ihrer Anfrage sehen.)

Im Kontext der Taxonomie bedeutet vid "Vokabel-ID". Ein Wortschatz ist eine Sammlung verwandter Begriffe. Jedes Vokabular hat eine eindeutige ID.

Im Kontext des Moduls "Ansichten" bedeutet "vid" "Ansichts-ID".

In einem anderen Fall sollten Sie der Datenbank keine Knoten mit benutzerdefinierten Abfragen hinzufügen. Die bessere Methode ist, ein Node-Objekt zu erstellen und es von Drupal in die Datenbank schreiben zu lassen node_save().

marcvangend
quelle
5

Aus der Drupal Knoten Objektreferenz Seite, node-> vid ist die Revision - ID der aktuellen Version des Knotens.

Der Knoteninhalt wird nicht direkt in der Knotentabelle, sondern in der Tabelle node_revisions gespeichert. Auf dieser Seite finden Sie eine gute Erklärung der Tabellenstrukturen .

alxp
quelle
2

vidist die Revisions-ID. In Drupal kann jeder Knoten mehrere Revisionen haben. Wenn Sie keine Revisionen verwenden, entspricht die nid(Knoten-ID) der vid.

Greg
quelle
Wenn Sie jedoch keine Revisionen verwenden, rechnen Sie nicht damit, dass nid immer gleich vid ist!
Greg
kann jemand Beispiele für Abfragen geben, um Daten in den Inhalt einzufügen, so dass ich den Inhalt in der Ansicht sehen kann .. dringende Leute
@rakeshakurathi - Schauen Sie sich den Quellcode für Node Clone an. Eines der wenigen Dinge, die es tut, ist das Einfügen neuer Knoten, so dass es leicht sein sollte, den relevanten Code in seiner Quelle zu lokalisieren. drupal.org/project/node_clone
Greg