В 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();
Категория

