it-swarm.com.de

Holen Sie sich alle Inhalte in allen Sprachen mit Abfrage

Ich war es leid, den Inhalt von db mithilfe von Abfragen unter bestimmten Bedingungen abzurufen, und ich muss Inhalte in allen Sprachen abrufen. Ich habe zwei Methoden ausprobiert, nur englischsprachige Inhalte wurden abgerufen, aber es funktioniert nicht für alle anderen Sprachen ...

Methode 1:

    $langcd = \Drupal::languageManager()->getCurrentLanguage()->getId();
    $query = \Drupal::entityQuery('node')
      ->condition('status', 1)
      ->condition('type', 'page');
      ->condition('langcode', $langcd);
    $nids = $query->execute();

Methode 2:

    $db = \Drupal::database();
    $query = $db->select('node', 'n');
    $query->fields('n');
    $query->condition('type', "page", "=");
    $query->condition('langcode', $langcd);
    $result = $query->execute()->fetchCol();

Jedes Mal, wenn ich nur die englische Version dieses Inhalts erhalte, war eine andere Sprache für diesen bestimmten Inhalt in db verfügbar. Bitte jemand hilft mir, den Inhalt in allen anderen Sprachen zu bekommen.

4
mohan prasath

Der folgende Code sollte funktionieren:

$langcd = \Drupal::languageManager()->getLanguages();
$langcd = array_keys($langcd);
$query = \Drupal::entityQuery('node')
        ->condition('status', 1)
        ->condition('type', 'page');
$query->condition('langcode', $langcd, 'IN');
$nids = $query->execute();

Rufen Sie zuerst die Liste der aktiven Sprachen ab und ändern Sie dann die Bedingung für langcode in IN.

3
Vishal Patil