# Aide à la saisie à une sortie entrée avec filtre
Cet exemple illustre l'utilisation du filtre sur le champ. La méthode SmartAutocompleteRequest::getFilterValue
retourne la valeur saisie dans le champ indiqué par la balise
config/structure-configuration/autocompletion/field-autocomplete/@field
(le champ où le sélecteur est affiché). Cette
méthode retourne une chaine vide si rien n'est saisi.
Astuce
Généralement, il est préférable de réaliser un trim
sur le résultat du getFilterValue
pour éviter des filtres trop
restrictifs.
<?php
namespace Anakeen\SmartStructures\Mydestination;
use Anakeen\SmartAutocompleteRequest;
use Anakeen\SmartAutocompleteResponse;
class NoteCityComplete
{
public function __invoke(
SmartAutocompleteRequest $request,
SmartAutocompleteResponse $response
): SmartAutocompleteResponse {
$filter = trim($request->getFilterValue());
$cities = ["Paris", "Rome", "Madrid"];
foreach ($cities as $city) {
// Filtre contient
if ($filter === "" || stripos($city, $filter) !== false) {
// Encode $city : Label entry is an HTML fragment
$response->appendEntry(\Anakeen\Core\Utils\Strings::xmlEncode($city), [$city]);
}
}
return $response;
}
}