Aqui estou tentando conectar três mesas para que eu possa obter o resultado desejado
Drupal 7 db select
function abc($Incharge) {
$res= db_select('node', 'n')
->Join('aa', 'f', 'f.id = n.nid')
->Join('bb', 'd', 'd.id = f.entity_id');
return $total_res = $res ->condition('n.type', 'ram')
->condition('d.target_id',$Incharge)
->condition('n.status', 1)
->fields('n', array('nid', 'title'))
->orderBy('n.title', 'ASC')
->execute()->fetchAllKeyed();
}
Mas estou enfrentando um problema
Erro fatal: chamada a uma função de membro Join () na string em /opt/lampp/htdocs/transgenic/sites/all/modules/report_system/report_system.module na linha 735
De acordo com a documentação ( https://www.drupal.org/docs/7/api/database-api/dynamic-queries/joins )
O valor de retorno de um método de junção é o apelido da tabela que foi atribuída
E também afirma -
As junções não podem ser encadeadas, portanto, devem ser chamadas separadamente (consulte Encadeamento). Se você estiver encadeando várias funções, faça assim:
Então você tem que fazer algo como ...
function abc($Incharge) {
$res= db_select('node', 'n');
$res->Join('aa', 'f', 'f.id = n.nid');
$res->Join('bb', 'd', 'd.id = f.entity_id');
return $total_res = $res ->condition('n.type', 'ram')
->condition('d.target_id',$Incharge)
->condition('n.status', 1)
->fields('n', array('nid', 'title'))
->orderBy('n.title', 'ASC')
->execute()->fetchAllKeyed();
}
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras