Как программно создать Экземпляр новой сущности с помощью следующего кода?

Главные вкладки

Аватар пользователя natalikarn natalikarn 25 октября 2020 в 20:22

Доброго времени суток !i

Помогите пожалуйста разобраться с сохранением сущности, весь день копаю и никак..

Создала по этой статье экземпляр сущности - https://drupal-coder.ru/blog/susnosti-drupal-8 таблица установилась без ошибок.

Далее программно создаю из своего модуля Экземпляр новой сущности с помощью следующего кода:

use Drupal\example\Entity\Example;
use Drupal\Core\Entity\EntityInterface;
use Drupal\Core\Language\LanguageInterface;

$created = time();
$uuid_service = \Drupal::service('uuid');
$uuid = $uuid_service->generate();
$lc = LanguageInterface::LANGCODE_DEFAULT;
$example = new Example([
  'uuid' => array($lc => $uuid),
  'created' => array($lc => $created),
  'fint' => array($lc => 10),
  'fstring' => array($lc => 'some text'),
  'fdecimal' => array($lc => 10.1),
], 'example');
$example->save();

И не работает, т.е. записи в таблицу не добавляются, возможно есть разница между версиями, так-как этот урок для друпал 8, а я делаю на друпал 9?

При этом данные добавляются в мою кастомную таблицу без проблем, проверила другой вариант, без создания сущности.

Комментарии

Аватар пользователя natalikarn natalikarn 25 октября 2020 в 21:54

Проблема возникла с автоматическим добавлением даты в поле таблицы, почему-то не хочет работать, а в кастомной это работает. попробовала таким образом добавлять запись о времени добавлении записи
$created = time();
Но она записывается в таком формате - 1603651201, как правильно установить дату и время в таком случае на CURRENT_TIMESTAMP?

// Дата.
    $fields['datetime'] = BaseFieldDefinition::create('datetime')
      ->setLabel(t('Дата и время записи'))
      ->setDescription(t('datetime'))
        ->setSettings(array(
          'default_value' => '',
        )
        );