Рейтинг:0

Плагин запроса Views Undefined Ошибка индекса

флаг ua
mfv

Я пытался создать настраиваемый плагин запроса представлений, но я получаю неопределенную ошибку индекса для каждого поля, которое я отображаю. Фильтры, которые я использую для конечной точки, работают, когда я их проверяю. Этот плагин извлекает данные с другого сайта drupal через конечную точку json. Я сопоставляю поля представлениям с помощью hook_views_data():

<?php
/**
 * Реализует hook_views_data().
 */
функция letter_query_views_data(){
  $ данные = [];
  //базовые данные
$data['letter_query']['table']['group'] = t('Letter Query');
  $data['letter_query']['table']['base'] = [
  'title' => t('Письмо-запрос'),
    'query_id' => 'views_letter_query',
    'help' => t('Запрос конечной точки API для писем'),
  ];

//поля
  $data['letter_query']['title']=[
    'title' => t('Заголовок письма'),
    'help' => t('Название письма'),
    'поле' => [
      'id' => 'стандарт',
    ],
  ];

  $data['letter_query']['field_note']=[
    'название' => т('Примечание'),
    'help' => t('Письмо Примечание'),
    'поле' => [
      'id' => 'стандарт',
    ],
  ];

вернуть $данные;
}

Вот мой запрос просмотров:

<?php

пространство имен Drupal\letter_query\Plugin\views\query;

используйте Drupal\Core\Plugin\ContainerFactoryPluginInterface;
используйте Drupal\views\ResultRow;
используйте Drupal\views\ViewExecutable;
используйте Drupal\views\Plugin\views\query\QueryPluginBase;
используйте Drupal\views\Annotation\ViewsQuery;
используйте Symfony\Component\DependencyInjection\ContainerInterface;

/**
 * Плагин запросов Views, который оборачивает вызовы API запросов писем, чтобы
 * выставлять результаты на просмотр.
 *
 * @ViewsQuery(
 * id = "views_letter_query",
 * title = @Translation("Письмо-запрос"),
 * help = @Translation("Запрос к API.")
 * )
 */

класс ViewsLetterQuery расширяет QueryPluginBase, реализует ContainerFactoryPluginInterface {

  /**
   * @var \Drupal\letter_query\Plugin\views\letterQueryClient
   */
  защищенный $letterQueryClient;


  /**
   * Конструктор ViewsLetterQuery.
   *
   * @param массив $configuration
   * @параметр $plugin_id
   * @param $plugin_definition
   * @param $letterQueryClient \Drupal\letter_query\Plugin\views\letterQueryClient
   */
  публичная функция __construct(массив $configuration, $plugin_id, $plugin_definition, $letterQueryClient) {
    parent::__construct($configuration, $plugin_id, $plugin_definition);
    $this->letterQueryClient = $letterQueryClient;

  }

  общедоступная статическая функция create(ContainerInterface $container, массив $configuration, $plugin_id, $plugin_definition) {
    вернуть новую статику(
      $ конфигурация,
      $plugin_id,
      $plugin_definition,
      $container->получить('letter_query_client')

    );
  }

  выполнение публичной функции (ViewExecutable $ view) {
    $индекс = 0;
    если ($data = $this->letterQueryClient->getLetters())
    {
      foreach ($данные как $letter_item) {
        $row['title'] = $letter_item['title'];
        $row['field_note'] = $letter_item['field_note'];
        $строка['индекс'] = $индекс++;
        $view->result[] = новый ResultRow($row);

      }

    }


  }

  публичная функция sureTable($table, $relationship = NULL) {
    возвращаться '';
  }

  публичная функция addField($table, $field, $alias = '', $params = []) {
    вернуть $поле;
  }
}
флаг in
Какой тип ошибок вы получаете? Я подозреваю, что вам также может понадобиться определить плагин @ViewsFilter для части фильтра: https://zanzarra.com/blog/custom-views-filter-plugin-drupal-8-bounding-box-geofield

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.