Cómo obtener los comentarios de nodo vía código en Drupal 8

Author Top
enzo

Este artículo pertenece a la sección de consejos y trucos de Drupal 8, porque voy a explicar cómo obtener los comentarios de una entidad tipo nodo entidad en particular.

Antes de comenzar con el código, quiero aclarar que en Drupal 8 los comentarios podrían estar dentro de definición de un Content Type como un campo adicional, pero no es el caso de está entrada de blog.

Voy a manejar los comentarios aquí como una entidad separada. Para obtener los comentarios voy a utilizar el EntityQuery, de este modo voy a evitar el escribir consultas SQL explícitos, y nuestro código será portable.

$cids = \Drupal::entityQuery('comment')
   ->condition('entity_id', $ticketID)
   ->condition('entity_type', 'node')
   ->sort('cid', 'DESC')
   ->execute();

$comments = [];

foreach($cids as $cid) {
 $comment = Comment::load($cid);

 $comments[] = [
     'cid' => $cid,
     'uid' => $comment->getOwnerId(),
     'subject' => $comment->get('subject')->value,
     'body' => $comment->get('field_comment_body')->value,
     'created' => $comment->get('created')->value
 ];
}

Repasemos el código anterior en detalle; Como se puede ver, se requiere especificar el tipo de entidad del cual estamos tratando de obtener comentarios, Eso nos dicen que en Drupal 8 es posible vincular los comentarios a cualquier entidad.

Además, he especificado el ID de entidad especifica para obtener comentarios, es posible añadir más condiciones; Esto es útil tomando en cuenta de que los comentarios son entidades y es posible que los comentarios también tenga campos personalizados con información adicional.

Cuando creamos el EntityQuery, definimos qué tipo de entidad deseamos procesar, como el resultado despues de la ejecución de la consulta obtendremos una lista de los ID de las entidades que cumplan las condiciones, en este caso, la el ID está representado por CID.

Usando la lista de identificadores de comentarios o CIDS, podemos cargar un objeto de tipo Comment. En el ejemplo solo recorroe el arreglo para crear una arreglo multimencional arbitrario, sólo para mostrar cómo se puede acceder a las propiedades del comentario, por lo general es necesario para utilizar el método GET, pero hay algunas excepciones como el ID del autor del comentatio.

Espero haces has encontrado está entrada de blog útil.