Eu tenho uma visão que aceita um filtro contextual para retornar os resultados corretos. Estou usando os Serviços 3 e o Drupal 7. Sou capaz de criar um terminal e recuperar a exibição por meio de serviços. Mas parece que não há como passar o filtro contextual, porque services_views possui apenas um método de recuperação (que usa GET). Alguém sabe se isso é possível e, em caso afirmativo, como isso pode ser feito?
11
Esta é uma pergunta já respondida, mas para outras pessoas que navegarem aqui no futuro, eu recomendaria usar e dar uma olhada na documentação em Exibições de Serviços . Ele explica como passar filtros contextuais junto com vários outros argumentos possíveis, e tem um vídeo de demonstração e mostra exemplos.
fonte
Se você precisar usar vários valores em seu filtro contextual, sugiro fazer o seguinte:
return str_replace("|", "+", $_GET['nid']);
Agora, ao chamar seu serviço, forneça seus filtros contextuais dessa maneira: ... / my_service? Nid = 1 | 2 | 3
fonte
Para aqueles que ainda têm problemas, verifique se, ao adicionar um filtro à exibição, nas configurações do campo especificado, existe um identificador de filtro. Esse precisa ser o argumento transmitido para a cadeia de consulta nos dois formatos listados na documentação de Exibições de Serviços.
fonte
Consegui obter um filtro contextual com os Serviços Drupal: 1) ativando o módulo 'Consulta de filtro contextual de visualizações' ( https://drupal.org/project/views_contextual_filter_query ) 2) passando o filtro contextual pela URL como uma string de consulta .
No filtro contextual, você terá que selecionar 'QUANDO O VALOR DO FILTRO NÃO ESTÁ DISPONÍVEL' -> 'Parâmetro de consulta no URL. Você poderá adicionar o nome do parâmetro que usará na URL. Isso também permite que você use os botões + e | caracteres para selecionar vários critérios de filtro.
fonte