Làm cách nào để tôi chuyển các bộ lọc theo ngữ cảnh cho chế độ xem qua các dịch vụ


11

Tôi có quan điểm chấp nhận bộ lọc theo ngữ cảnh để trả về kết quả chính xác. Tôi đang sử dụng Dịch vụ 3 và Drupal 7. Tôi có thể tạo điểm cuối và truy xuất chế độ xem qua các dịch vụ. Nhưng có vẻ như không có cách nào để vượt qua bộ lọc theo ngữ cảnh, bởi vì services_view chỉ có một phương thức truy xuất (sử dụng GET). Có ai biết nếu điều này là có thể, và nếu vậy làm thế nào nó có thể được thực hiện?

Câu trả lời:


14

vượt qua bộ lọc của bạn như sau: yourendpoint? args [0] = value & args [1] = value

Chúc may mắn


3

Miễn là các bộ lọc được hiển thị trong chế độ xem, tên trường có sẵn dưới dạng bộ lọc theo ngữ cảnh. Ví dụ: hiển thị NID trong danh sách bộ lọc và bạn có thể làm

GET /endpoint?nid=5

1
Giải pháp này hoạt động cho các tiêu chí lọc tiếp xúc. Theo hiểu biết tốt nhất của tôi, các bộ lọc theo ngữ cảnh không hoạt động, nhưng đây là một cách giải quyết nổi bật.
Brent

3

Đây là một câu hỏi đã được trả lời, nhưng đối với những người khác đang duyệt ở đây trong tương lai, tôi sẽ khuyên bạn nên sử dụng và xem tài liệu tại Chế độ xem Dịch vụ . Nó giải thích cách vượt qua các bộ lọc theo ngữ cảnh cùng với một loạt các đối số có thể khác, và nó có một video demo và hiển thị các ví dụ.


1
Sau khi thực hiện nghiên cứu sâu hơn, có vẻ như điều này là không thể nếu không sửa đổi services_view.
dùng379468

2

Nếu bạn phải sử dụng nhiều giá trị trong bộ lọc theo ngữ cảnh của mình, tôi khuyên bạn nên làm như sau:

  • Tạo bộ lọc theo ngữ cảnh của bạn (trong trường hợp của tôi: nid)
  • Nhấp vào "Cung cấp giá trị mặc định" và đặt loại là Bộ lọc ngữ cảnh PHP mong đợi một chuỗi có nhiều giá trị được phân tách bằng dấu + hoặc dấu phẩy.

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

  • Trong phần "Khác", chọn "Cho phép nhiều giá trị".

Bây giờ khi gọi dịch vụ của bạn, hãy cung cấp các bộ lọc theo ngữ cảnh theo cách đó: ... / my_service? Nid = 1 | 2 | 3


2

Đối với những người bạn vẫn gặp sự cố, hãy đảm bảo rằng khi bạn thêm Bộ lọc vào Chế độ xem, trong cài đặt cho Trường được chỉ định, sẽ có số nhận dạng Bộ lọc. Điều này cần phải là đối số được truyền vào chuỗi truy vấn theo hai định dạng được liệt kê trong tài liệu Chế độ xem dịch vụ.


Tôi đã vật lộn với điều đó, hoàn toàn không trực quan vì tôi tưởng tượng tiêu đề sẽ được sử dụng làm khóa bộ lọc. Cảm ơn bạn!
donnadulcinea

1

Tôi đã có thể nhận bộ lọc theo ngữ cảnh với Dịch vụ Drupal bằng cách: 1) kích hoạt mô-đun 'Truy vấn bộ lọc theo ngữ cảnh' ( https://drupal.org/project/view_contextual_filter_query ) 2) chuyển qua bộ lọc theo ngữ cảnh qua URL dưới dạng chuỗi truy vấn.

Trong bộ lọc theo ngữ cảnh, bạn sẽ phải chọn 'KHI GIÁ TRỊ LỌC KHÔNG CÓ S' N '->' Tham số truy vấn từ URL. Sau đó, bạn sẽ có thể thêm tên tham số mà bạn sẽ sử dụng trong URL. Điều này cũng cho phép bạn sử dụng + và | ký tự để chọn nhiều tiêu chí lọc.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.