Puncte:0

Eroare de index nedefinit din pluginul de interogare Vizualizări

drapel ua
mfv

Am încercat să construiesc un plugin de interogare personalizat, dar primesc o eroare de index nedefinită pentru fiecare câmp pe care îl mapez. Filtrele pe care le folosesc pentru punctul final funcționează când le verific. Acest plugin extrage date de pe un alt site drupal printr-un punct final json. Mapez câmpurile la vizualizări cu hook_views_data():

<?php
/**
 * Implementează hook_views_data().
 */
funcția letter_query_views_data(){
  $date =[];
  //date de bază
$data['letter_query']['table']['group'] = t('Letter Query');
  $data['letter_query']['table']['base'] = [
  'title' => t('Interogare scrisori'),
    'query_id' => 'views_letter_query',
    'help' => t('Interogare punct final API pentru litere'),
  ];

//câmpuri
  $data['letter_query']['title']=[
    'title' => t('Titlul scrisorii'),
    'help' => t('Titlul scrisorii'),
    'câmp' => [
      'id' => 'standard',
    ],
  ];

  $data['letter_query']['field_note']=[
    'title' => t('Notă'),
    'help' => t('Notă de scrisoare'),
    'câmp' => [
      'id' => 'standard',
    ],
  ];

returnează $date;
}

Iată interogarea mea de opinii:

<?php

spațiu de nume Drupal\letter_query\Plugin\views\query;

utilizați Drupal\Core\Plugin\ContainerFactoryPluginInterface;
utilizați Drupal\views\ResultRow;
utilizați Drupal\views\ViewExecutable;
utilizați Drupal\views\Plugin\views\query\QueryPluginBase;
utilizați Drupal\views\Annotation\ViewsQuery;
utilizați Symfony\Component\DependencyInjection\ContainerInterface;

/**
 * Pluginul de interogare Vizualizări care include apelurile la API-ul de interogare de litere pentru a
 * expune rezultatele la vizualizări.
 *
 * @ViewsQuery(
 * id = "views_letter_query",
 * title = @Translation ("Interogare de scrisori"),
 * ajutor = @Translation ("Interogare împotriva API.")
 * )
 */

clasa ViewsLetterQuery extinde QueryPluginBase implementează ContainerFactoryPluginInterface {

  /**
   * @var \Drupal\letter_query\Plugin\views\letterQueryClient
   */
  protejat $letterQueryClient;


  /**
   * Constructor ViewsLetterQuery.
   *
   * @param array $configurare
   * @param $plugin_id
   * @param $plugin_definition
   * @param $letterQueryClient \Drupal\letter_query\Plugin\views\letterQueryClient
   */
  funcția publică __construct(array $configuration, $plugin_id, $plugin_definition, $letterQueryClient) {
    parent::__construct($configuration, $plugin_id, $plugin_definition);
    $this->letterQueryClient = $letterQueryClient;

  }

  funcția publică statică create(ContainerInterface $container, matrice $configurație, $plugin_id, $plugin_definition) {
    returnează static nou (
      $configurare,
      $plugin_id,
      $plugin_definition,
      $container->get('letter_query_client')

    );
  }

  funcția publică execute(ViewExecutable $view) {
    $index = 0;
    if ($date = $this->letterQueryClient->getLetters())
    {
      foreach ($date ca $letter_item) {
        $row['title'] = $letter_item['titlu'];
        $row['field_note'] = $letter_item['field_note'];
        $row['index'] = $index++;
        $view->result[] = new ResultRow($row);

      }

    }


  }

  funcția publică asiguraTable($tabel, $relație = NULL) {
    întoarcere '';
  }

  funcția publică addField($tabel, $câmp, $alias = '', $params = []) {
    returnează $câmp;
  }
}
drapel in
Ce tip de eroare(e) primiți? Bănuiesc că ar putea fi necesar să definiți și un plugin @ViewsFilter pentru porțiunea de filtru: https://zanzarra.com/blog/custom-views-filter-plugin-drupal-8-bounding-box-geofield

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.