You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2018-05-31 16:01:55

delmed
Member
Registered: 2014-06-04
Posts: 6

Probleme recherche

Bonjour,
j'essaie d'utiliser l'api rest glpi dans un projet symfony.
quand je lance une recherche simple d'un utilsateur avec son login:

$criteria[] = ['field' => 1, 'searchtype' => "equals", 'value' => 'test'];
        $response = $itemHandler->searchItems('User',[
            'criteria' => $criteria
        ]);

j'obtiens une réponse vide.
sachant qu'avec searchtype = contains j'obtiens tous les utilsateurs avec 'test' dans le login.

dans les logs mysql je trouve que field 1 lance la recherche sur le champ id listSearchOptions

2018-05-31T13:45:08.457229Z	    5 Query	SELECT 'glpi' AS currentuser,
                         GROUP_CONCAT(DISTINCT CONCAT(`glpi_users`.`name`, '$#$' ,
                                                        `glpi_users`.`id`)
                                        SEPARATOR '$$##$$') AS `ITEM_0`,
                           
                           `glpi_users`.`realname` AS `ITEM_1`,   GROUP_CONCAT(DISTINCT CONCAT(IFNULL(`glpi_useremails`.`email`, '__NULL__'),
                                               '$#$',`glpi_useremails`.`id`) SEPARATOR '$$##$$')
                              AS `ITEM_2`,
                  
                  `glpi_users`.`phone` AS `ITEM_3`,  `glpi_locations`.`completename` AS `ITEM_4`,  `glpi_users`.`is_active` AS `ITEM_5`,  `glpi_users`.`id` AS `ITEM_6`,  `glpi_users`.`id` AS id  FROM `glpi_users` LEFT JOIN `glpi_profiles_users` 
                                             ON (`glpi_users`.`id` = `glpi_profiles_users`.`users_id`
                                                 ) LEFT JOIN `glpi_useremails` 
                                             ON (`glpi_users`.`id` = `glpi_useremails`.`users_id`
                                                 )LEFT JOIN `glpi_locations` 
                                          ON (`glpi_users`.`locations_id` = `glpi_locations`.`id`
                                              ) WHERE  `glpi_users`.`is_deleted` = '0'  AND (    (`glpi_users`.`id` = 'test' OR `glpi_users`.`id` IS NULL) ) GROUP BY `glpi_users`.`id` ORDER BY `glpi_users`.`name` ASC

dans /listSearchOptions/User:

object(stdClass) # 581(44) {
	["common"] => object(stdClass) # 591(1) {
		["name"] => string(17)"Caractéristiques"
	}
	["1"] => object(stdClass) # 582(8) {
		["name"] => string(11)"Identifiant"["table"] => string(10)"glpi_users"["field"] => string(4)"name"["datatype"] => string(8)"itemlink"["nosearch"] => bool(false)["nodisplay"] => bool(false)["available_searchtypes"] => array(3) {
			[0] => string(8)"contains"[1] => string(6)"equals"[2] => string(9)"notequals"
		}
		["uid"] => string(9)"User.name"
	}

je n'arrive pas a comprendre d'où vient l'erreur !?
Merci pour votre aide.

Offline

#2 2018-05-31 16:14:28

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,287

Re: Probleme recherche

si vous voulez faire une recherche sur le login il faut le faire avec contain

et si vous voulez une correspondance exacte il faut mettre un ^ avant et un $ à la fin

value=^test$  ainsi test1 ne sera pas renvoyé dans la liste.

pour le equals, il y a une note dans la documentation, il n'est utilisé que pour les recherches sur les dropdown

edit : je déplace dans API REST

Last edited by LaDenrée (2018-06-02 23:04:03)


Trouver la panne avant de réparer...
GLPI10.0.16 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.3 reports 1.16.0 formcreator 2.13.9, datainjection 2.13.5 fields 1.21.9

Offline

#3 2018-06-02 13:17:35

delmed
Member
Registered: 2014-06-04
Posts: 6

Re: Probleme recherche

Parfait.
Merci LaDenrée.

Offline

Board footer

Powered by FluxBB