У меня есть представление, которое принимает контекстный фильтр, чтобы вернуть правильные результаты. Я использую Сервисы 3 и Drupal 7. Я могу создать конечную точку и получить представление через сервисы. Но кажется, что нет способа пройти контекстный фильтр, потому что services_views имеет только метод получения (который использует GET). Кто-нибудь знает, возможно ли это, и если да, то как это можно сделать?
11
Это уже отвеченный вопрос, но для других, просматривающих здесь в будущем, я бы рекомендовал использовать и взглянуть на документацию в представлении служб . В нем разъясняется, как передавать контекстные фильтры вместе с кучей других возможных аргументов, а также имеется демонстрационное видео и примеры.
источник
Если вам нужно использовать несколько значений в вашем контекстном фильтре, я предлагаю сделать следующее:
return str_replace("|", "+", $_GET['nid']);
Теперь при вызове службы предоставьте свои контекстные фильтры следующим образом: ... / my_service? Nid = 1 | 2 | 3
источник
Для тех из вас, у кого все еще есть проблемы, убедитесь, что при добавлении фильтра в представление в настройках для указанного поля есть идентификатор фильтра. Это должен быть аргумент, передаваемый в строку запроса в двух форматах, перечисленных в документации по представлениям служб.
источник
Мне удалось получить контекстный фильтр с помощью Drupal Services: 1) включив модуль «Запрос контекстного фильтра Views» ( https://drupal.org/project/views_contextual_filter_query ) 2) пропустив контекстный фильтр через URL-адрес в виде строки запроса.
В контекстном фильтре вам нужно будет выбрать «КОГДА ЗНАЧЕНИЕ ФИЛЬТРА НЕ ДОСТУПНО» -> «Параметр запроса из URL. После этого вы сможете добавить имя параметра, которое вы будете использовать в URL. Это также позволяет использовать + и | символы для выбора нескольких критериев фильтра.
источник