J'ai une vue qui accepte un filtre contextuel afin de retourner les résultats corrects. J'utilise Services 3 et Drupal 7. Je peux créer un point de terminaison et récupérer la vue via les services. Mais il semble qu'il n'y ait aucun moyen de passer le filtre contextuel, car services_views ne dispose que d'une méthode de récupération (qui utilise GET). Quelqu'un sait-il si cela est possible et si oui, comment cela peut-il être fait?
passez votre filtre comme suit: votreendpoint? args [0] = valeur & args [1] = valeur
Bonne chance
Tant que les filtres sont exposés dans la vue, les noms de champs sont disponibles en tant que filtres contextuels. Par exemple, exposez NID dans la liste des filtres et vous pouvez faire
GET /endpoint?nid=5
Il s'agit d'une question déjà répondue, mais pour d'autres personnes qui naviguent ici à l'avenir, je recommanderais d'utiliser et de consulter la documentation à Vues des services . Il explique comment passer des filtres contextuels avec un tas d'autres arguments possibles, et il a une vidéo de démonstration et montre des exemples.
Pour ceux d'entre vous qui ont encore des problèmes, assurez-vous que lorsque vous ajoutez un filtre à la vue, sous les paramètres du champ spécifié, il y a un identificateur de filtre. Il doit s'agir de l'argument transmis à la chaîne de requête dans les deux formats répertoriés dans la documentation des vues de services.
Si vous devez utiliser plusieurs valeurs dans votre filtre contextuel, je vous suggère de procéder comme suit:
return str_replace("|", "+", $_GET['nid']);
Maintenant, lorsque vous appelez votre service, fournissez vos filtres contextuels de cette façon: .../mon_service? Nid = 1 | 2 | 3
J'ai pu obtenir un filtre contextuel avec Drupal Services en: 1) activant le module 'Vues Contextual Filter Query' ( https://drupal.org/project/views_contextual_filter_query ) 2) en passant le filtre contextuel via l'URL comme chaîne de requête.
Dans le filtre contextuel, vous devrez sélectionner 'QUAND LA VALEUR DU FILTRE IS NON DISPONIBLE' -> 'Paramètre de requête à partir de l'URL. Vous pourrez ensuite ajouter le nom du paramètre que vous utiliser dans l'URL. Cela vous permet également d'utiliser les caractères + et | pour sélectionner plusieurs critères de filtre.