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 n'a qu'une méthode de récupération (qui utilise GET). Quelqu'un sait-il si cela est possible et, dans l'affirmative, comment le faire?
11
Il s'agit d'une question à laquelle il a déjà été répondu, mais pour les autres personnes qui naviguent ici à l'avenir, je recommanderais d'utiliser et de consulter la documentation dans 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.
la source
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
la source
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.
la source
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 N'EST PAS DISPONIBLE' -> 'Paramètre de requête dans l'URL. Vous pourrez alors ajouter le nom du paramètre que vous utiliserez dans l'URL. Cela vous permet également d'utiliser les + et | caractères pour sélectionner plusieurs critères de filtrage.
la source