You are not logged in.
Pages: 1
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
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
Parfait.
Merci LaDenrée.
Offline
Pages: 1