it-swarm.com.de

Wie beschränke ich die Anzahl der von der Abfrage betroffenen Zeilen?

In meinem benutzerdefinierten Modul für Drupal 8) verwende ich den folgenden Code.

$query = $this->connection->select('node_field_data', 'nf_data');
$result = $query->execute();

Ich möchte die ersten 500 Zeilen bekommen. Ich habe es mit $query->limit(50) versucht, aber das gibt den folgenden Fehler.

Aufruf der undefinierten Methode Drupal\Core\Database\Driver\mysql\Select :: limit ()

Was ist der richtige Code, um die ersten 500 Zeilen zu erhalten?

4
Diana
11
Kevin

Das von $this->connection->select() zurückgegebene Objekt ist ein Objekt einer Klasse, die \Drupal\Core\Database\Query\Select (nicht \Drupal\Core\Entity\Query\QueryInterface erweitert Entitätsabfragen). In Ihrem Fall lautet diese Klasse, da Sie MySQL als Datenbankmodul verwenden, speziell \Drupal\Core\Database\Driver\mysql\Select , wie der von Ihnen angegebene Fehler besagt.

Die Methode, nach der Sie suchen, ist Select::range() .

Sie verwechseln es mit PagerSelectExtender::limit() , das zum Begrenzen der Anzahl der Elemente pro Seite verwendet und aus der Klasse PagerSelectExtender implementiert wird. Um diese Methode verwenden zu können, müssen Sie der Abfrage jedoch einen Pager hinzufügen.

2
kiamlaluno