서비스를 통해 컨텍스트 필터를보기에 전달하는 방법


11

올바른 결과를 반환하기 위해 상황에 맞는 필터를 허용하는보기가 있습니다. Services 3과 Drupal 7을 사용하고 있습니다. 엔드 포인트를 생성하고 서비스를 통해 뷰를 검색 할 수 있습니다. 그러나 services_views에는 GET을 사용하는 retrieve 메소드 만 있기 때문에 컨텍스트 필터를 전달할 방법이없는 것 같습니다. 이것이 가능한지 알고 있다면 어떻게 할 수 있습니까?

답변:


14

다음과 같이 필터를 전달하십시오. yourendpoint? args [0] = value & args [1] = value

행운을 빕니다


3

필터가보기에 노출되는 한 필드 이름은 상황에 맞는 필터로 사용할 수 있습니다. 예를 들어, 필터 목록에서 NID를 노출하면

GET /endpoint?nid=5

1
이 솔루션은 노출 된 필터 기준에 적용됩니다. 내가 아는 한 상황 별 필터는 작동하지 않지만 이것은 탁월한 해결 방법입니다.
Brent

3

이것은 이미 답변 된 질문이지만, 앞으로이 사이트를 탐색하는 다른 사람들을 위해 Services Views 의 설명서를 사용하고 살펴 보는 것이 좋습니다 . 컨텍스트 필터를 전달하는 방법과 다른 여러 가지 인수를 설명하고 데모 비디오와 예제를 보여줍니다.


1
추가 조사를 한 결과 services_views를 수정하지 않으면 불가능한 것으로 보입니다.
user379468

2

상황에 맞는 필터에 여러 값을 사용해야하는 경우 다음을 수행하는 것이 좋습니다.

  • 상황에 맞는 필터 만들기 (필자의 경우 : nid)
  • "기본 값 제공"을 클릭하고 유형을 PHP Contextual Filter로 설정하십시오. 여러 값을 가진 문자열은 + 또는 쉼표로 구분됩니다.

return str_replace("|", "+", $_GET['nid']);

  • "추가"섹션에서 "여러 값 허용"을 선택하십시오.

이제 서비스를 호출 할 때 다음과 같은 방식으로 컨텍스트 필터를 제공하십시오. ... / my_service? nid = 1 | 2 | 3


2

여전히 문제가있는 사용자는보기에 필터를 추가 할 때 지정된 필드의 설정 아래에 필터 식별자가 있는지 확인하십시오. 이는 서비스 뷰 설명서에 나열된 두 가지 형식으로 쿼리 문자열에 전달되는 인수 여야합니다.


제목이 필터 키로 사용되는 것을 상상 한 이후로 직관적이지 않은 문제로 어려움을 겪고있었습니다. 감사합니다!
donnadulcinea

1

'보기 콘텐츠 필터 검색어'모듈 (가능) 1 : 나는 의해 드루팔 서비스와 상황에 맞는 필터를 얻을 수 있었다 https://drupal.org/project/views_contextual_filter_query 쿼리 문자열과 URL을 통해 상황에 맞는 필터를 통과) 2).

상황 별 필터에서 '필터 값을 사용할 수없는 경우'-> 'URL에서 검색어 매개 변수를 선택해야합니다. 그런 다음 URL에 사용할 매개 변수 이름을 추가 할 수 있습니다. 또한 + 및 | 여러 필터 기준을 선택하기위한 문자

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.