2016-09-06 2 views
0

Je vous remercie d'abord d'avoir lu ma question.Base de données de requêtes du bloc personnalisé dans Drupal 8

Je veux faire une requête aux données de base de données et d'affichage dans un bloc personnalisé dans Drupal 8.

J'ai essayé différentes manières sans succès:

<?php 

namespace Drupal\mi_modulo\Plugin\Block; 

use Drupal\Core\Block\BlockBase; 

/** 
* Bloque que muestra una lista de productos 
* @Block(
* id = "get_products", 
* admin_label = @Translation("get productos") 
*) 
*/ 
class getProducts extends BlockBase { 
    /** 
    * {@inheritdoc} 
    */ 

    public function build() { 
     $db = \Drupal::database(); 
     $data = $db->select('products','t')->fields('t')->execute(); 

     return array(
      '#theme' => 'mi_modulo', 
      '#descripcion' => 'Lista de productos', 
      '#nodos' => $data 
     ); 
    } 
} 
+0

Existe-t-il une raison particulière d'utiliser db-> select()? Si c'est le contenu que vous voulez, vous pouvez simplement utiliser l'EntityTypeManager – VJamie

+0

duplication possible de [Comment créer une requête dans Drupal 8] (http://stackoverflow.com/questions/33944735/how-to-create-a-query-in- drupal-8) – VJamie

+0

Je n'avais pas quelques concepts sur drupal 8 résoudre mon problème en utilisant des types de contenu et des vues de drupal –

Répondre

0

Bon si je comprends bien, vous voulez pour avoir votre avis dans votre bloc. Maintenant, il y a quelques options ici:

  1. Vous pouvez simplement aller à la vue et créer votre bloc là, puis le mettre où vous le souhaitez.
  2. Si vous voulez vraiment l'avoir dans un bloc personnalisé, vous pouvez utiliser la fonction views_embed_view('view_name'). Je vais expliquer l'option 2 dans le code ci-dessous.

Ceci va intégrer la vue dans votre bloc et l'afficher tel que vous l'avez configuré dans la vue.

public function build(){ 
    return views_embed_view('name_of_your_view'); 
}