vidの意味


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には複数の意味があります。それは理想的ではありませんが、私はそれが問題を引き起こすのを見ていません(時々穏やかな混乱以外)。

ノードのコンテキストでは、「バージョンID」を意味します。ノードテーブルのすべてのノードについて、Drupalはnode_revisionsテーブルに複数のバージョンを保存できます。バージョンIDは、node_revisionsテーブル内の一意の識別子です。(これは、クエリで表示されるvidです。)

分類のコンテキストでは、vidは「語彙ID」を意味します。ボキャブラリーは、関連する用語のコレクションです。すべての語彙には一意のIDがあります。

Viewsモジュールのコンテキストでは、vidは「ビューID」を意味します。

別の注意として、カスタムクエリを使用してデータベースにノードを追加しないでください。より良い方法は、ノードオブジェクトを作成し、Drupalがを使用してそれをデータベースに書き込むことnode_save()です。



2

vidリビジョンIDです。Drupalでは、すべてのノードに複数のリビジョンを設定できます。リビジョンを使用していない場合、nid(ノードID)はと等しくなりvidます。


ただし、リビジョンを使用しない場合は、常にvidに等しいnidを期待しないでください!
グレッグ

ビューにコンテンツを表示できるように、コンテンツにデータを挿入するクエリの例を挙げることができます。.緊急の男

@rakeshakurathi-Node Cloneのソースコードをご覧ください。新しいノードを挿入することは数少ないことの1つであるため、ソース内の関連コードを簡単に見つけることができます。drupal.org/project/node_clone
グレッグ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.