Как создать комментарий в Drupal 8 программно

В Drupal 8 создать комментарий программно можно несколькими способами. Для начала давайте разберем обязательные ключи, которые необходимы для создания entity:

  • entity_type - bundle, к которому будет прикреплен комментарий (например 'node')
  • entity_id - ID материала, к которому будет прикреплен комментарий
  • field_name - название поля, которое указано в типе материала в качестве ленты комментариев
  • uid - ID пользователя, от имени которого будет опубликован комментарий
  • comment_type - тип материала комментарий (в Drupal можно создать несколько типов комментариев, базовый тип 'comment')
  • subject - заголовок комментария

Также могут быть указаны дополнительные необязательные ключи:

  • comment_body - комментарий
  • status - статус комментария (опубликован или нет, по умолчанию 0).

Создать комментарий можно обратившись к классу комментария напрямую:

use Drupal\comment\Entity\Comment;

$values = [
  'entity_type' => 'node',
  'entity_id'   => 154,
  'field_name'  => 'comment',
  'uid' => 1,
  'comment_type' => 'comment',
  'subject' => 'Заголовок комментария',
  'comment_body' => 'Тело комментария',
  'status' => 1,
];
$comment = Comment::create($values);
$comment->save();

Или можно сохранить используя менеджер материалов:

$values = [
  'entity_type' => 'node',
  'entity_id'   => 154,
  'field_name'  => 'comment',
  'uid' => 1,
  'comment_type' => 'comment',
  'subject' => 'Заголовок комментария',
  'comment_body' => 'Тело комментария',
  'status' => 1,
];
$comment = \Drupal::entityTypeManager()->getStorage('comment')->create($values);
$comment->save();

 

Категория