Создание контента программно

В Drupal 8, как создать контент программно? Из администрации «Drupal 8» я создал новый тип «Дом» (содержащий описание, изображение, ссылочное поле для пользователей ...). Как я могу создать тип объекта «Дом» из пользовательского модуля?

В моем пользовательском модуле у меня есть файл формы (содержащий класс, который расширяет FormBase). В обратном вызове submit я хочу создать новый «дом» и установить значения и сохранить новый объект.

Я не нашел пример в Интернете, в основном источнике ...

6 голосов | спросил user2137454 5 42015vEurope/Moscow11bEurope/MoscowThu, 05 Nov 2015 00:46:59 +0300 2015, 00:46:59

2 ответа


8

Вот простой пример создания узла в Drupal 8.

$data = array(
  'type' => 'article', 
  'title' => 'My new title', 
  'uid' => 1
);
$node = Drupal::entityManager()
  ->getStorage('node')
  ->create($data);
$node->save();

Обновлено для удаления устаревшей функции в соответствии с комментариями @mradcliffe. Спасибо!

FYI, для тестирования небольших фрагментов кода, подобных этому, команда drush core-cli отлично работает. См .: http://www.drushcommands.com/drush-7x/core/core -cli

ответил cleaver 5 42015vEurope/Moscow11bEurope/MoscowThu, 05 Nov 2015 19:09:42 +0300 2015, 19:09:42
0

По состоянию на Drupal 8 узлов теперь рассматриваются как сущности. Вы можете просто создать узел по следующему коду

$new_page_values = array();
$new_page_values['type'] = 'my_content_type';
$new_page_values['title'] = $form_state['values']['page_title'];
$new_page_values['path'] = $new_page_path;

$new_page = entity_create('node', $new_page_values);
$new_page->save();
ответил Shabir A. 5 42015vEurope/Moscow11bEurope/MoscowThu, 05 Nov 2015 19:26:47 +0300 2015, 19:26:47

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132