Tengo una vista que acepta un filtro contextual para devolver los resultados correctos. Estoy usando los Servicios 3 y Drupal 7. Puedo crear un punto final y recuperar la vista a través de los servicios. Pero parece que no hay forma de pasar el filtro contextual, porque services_views solo tiene un método de recuperación (que usa GET). ¿Alguien sabe si esto es posible y, de ser así, cómo se puede hacer?
11
Esta es una pregunta ya respondida, pero para otros que naveguen aquí en el futuro, recomendaría usar y echar un vistazo a la documentación en Vistas de servicios . Explica cómo pasar filtros contextuales junto con un montón de otros posibles argumentos, y tiene un video de demostración y muestra ejemplos.
fuente
Si tiene que usar valores múltiples en su filtro contextual, le sugiero que haga lo siguiente:
return str_replace("|", "+", $_GET['nid']);
Ahora, cuando llame a su servicio, proporcione sus filtros contextuales de esa manera: ... / my_service? Nid = 1 | 2 | 3
fuente
Para aquellos de ustedes que todavía tienen problemas, asegúrese de que cuando agregue un Filtro a la Vista, en la configuración del Campo especificado, haya un identificador de Filtro. Este debe ser el argumento pasado a la cadena de consulta en los dos formatos enumerados en la documentación de Vistas de servicios.
fuente
Pude obtener un filtro contextual con Drupal Services: 1) habilitando el módulo 'Consulta de filtro contextual de vistas' ( https://drupal.org/project/views_contextual_filter_query ) 2) pasando el filtro contextual a través de la URL como una cadena de consulta.
En el filtro contextual, deberá seleccionar 'CUANDO EL VALOR DEL FILTRO NO ESTÁ DISPONIBLE' -> 'Consultar parámetro desde la URL. Luego podrá agregar el nombre del parámetro que usará en la URL. Esto también le permite usar el + y | caracteres para seleccionar múltiples criterios de filtro.
fuente