O que significa vid

12

Eu projetei uma exibição e vejo essa consulta na seção de visualização:

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

O que vidsignifica aqui?

Na verdade, eu preciso disso porque quando tento inserir uma regra simples para inserir uma linha no crm_history usando esta consulta:

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

Ele preenche a tabela do banco de dados, mas não aparece na exibição. Ele mostra apenas a visualização quando adiciono através da página de criação de conteúdo.

doelleri
fonte

Respostas:

24

Infelizmente, vid pode significar várias coisas. Isso não é o ideal, mas eu não o vi causando problemas (além de uma leve confusão de vez em quando).

No contexto de nós, significa 'id da versão'. Para cada nó na tabela de nós, o Drupal pode salvar várias versões na tabela node_revisions. O ID da versão é o identificador exclusivo na tabela node_revisions. (Este é o vídeo que você vê na sua consulta.)

No contexto da taxonomia, vid significa 'id do vocabulário'. Um vocabulário é uma coleção de termos relacionados. Todo vocabulário tem um ID único.

No contexto do módulo Views, vid significa 'view id'.

Em uma nota diferente, você não deve adicionar nós ao banco de dados com consultas personalizadas. O melhor método é criar um objeto de nó e permitir que o drupal o grave no banco de dados usando node_save().

Marcvangend
fonte
5

Na página de referência do objeto do nó Drupal , node-> vid é o ID da revisão da versão atual do nó.

O conteúdo do nó não é armazenado diretamente na tabela de nós, mas na tabela node_revisions. Há uma boa explicação das estruturas da tabela nesta página .

alxp
fonte
2

vidé o ID da revisão. No Drupal, cada nó pode ter várias revisões. Se você não estiver usando revisões, o nid(ID do nó) será igual a vid.

Greg
fonte
Mas, quando não estiver usando revisões, não conte com nid sempre igual a vid!
Greg
pode qualquer exemplos um contribua de consulta para inserir dados com o conteúdo para que eu possa ver o conteúdo na vista .. caras urgentes
@rakeshakurathi - Veja o código fonte do Node Clone. Uma das poucas coisas que ele faz é inserir novos nós; portanto, deve ser fácil localizar o código relevante em sua origem. drupal.org/project/node_clone
Greg