Drupal 8のカスタムモジュールでは、次のコードを使用しています。
_$query = $this->connection->select('node_field_data', 'nf_data');
$result = $query->execute();
_
最初の500行を取得します。 $query->limit(50)
で試しましたが、次のエラーが発生します。
未定義のメソッドDrupal\Core\Database\Driver\mysql\Select :: limit()の呼び出し
最初の500行を取得するための正しいコードは何ですか?
$this->connection->select()
から返されるオブジェクトは、拡張するクラスのオブジェクトです _\Drupal\Core\Database\Query\Select
_ (エンティティクエリ用の _\Drupal\Core\Entity\Query\QueryInterface
_ ではありません) )。あなたの場合、データベースエンジンとしてMySQLを使用しているので、引用したエラーが示すように、そのクラスは具体的には _\Drupal\Core\Database\Driver\mysql\Select
_ です。
あなたが探しているメソッドは Select::range()
です。
PagerSelectExtender::limit()
と混同しています。これは、ページごとの要素数を制限するために使用され、 PagerSelectExtender
クラスから実装されています。ただし、この方法を使用するには、ページャーをクエリに追加する必要があります。