J'ai une requête avec un opérateur 'BETWEEN' et je devrais avoir des résultats. Existe-t-il un moyen d'afficher la requête SQL réelle effectuée?
Voici ma requête d'entité:
$query = $this->entity_query->get('node');
$query->condition('type', 'store');
$query->condition('status', 1);
if ($lat_min && $lng_min && is_numeric($lat_min) && is_numeric($lng_min) && $lat_max && $lng_max && is_numeric($lat_max) && is_numeric($lng_max)) {
$query->condition('field_store_geolocation.lat', [$lat_min, $lat_max], 'BETWEEN');
$query->condition('field_store_geolocation.lng', [$lng_min, $lng_max], 'BETWEEN');
}
$nids = $query->execute();
Bien sûr, je me suis assuré que mes valeurs étaient celles attendues et j'ai également essayé avec '<', '>' et sans vars mais avec des valeurs réelles pour m'assurer que rien n'allait mal.
J'utilise ici le module ' Geolocation Field '.
Si vous utilisez le module devel, une approche simple pour déboguer la requête d'entité pourrait être d'utiliser la balise debug
(ajoutez simplement $query->addTag('debug')
à votre requête). Voici un exemple
$query = $this->entity_query->get('node');
$query->condition('status', NODE_PUBLISHED);
$query->addTag('debug');
$query->execute();
Et le résultat