Доброе время суток.
Начал знакомиться с созданием собственных модулей. Разрабатывать форму (запись производится в ДБ), возник момент при записи даты в бд.
Кусок кода из формы:
<?php
$form['DatePast'] = [
'#type' => 'date',
'#default_value' => $date ? $date : date('y-m-d'),
];
?>
Необходимо перевести дату в int формат при записи в MySQL
Кусок кода из запроса:
<?php
$query = db_insert('database_exform')
->fields(array(
'institution' => $form_state->getValue('institution'),
'problem_desc' => $form_state->getValue('Disck'),
'timestamp' => $form_state->getValue('DatePast')
))
->execute();
?>
Вложение | Размер |
---|---|
![]() | 4.4 КБ |
Комментарии
Рекомендую начать с изучения examples и конечно полезен код из коробки.
drupal 8 использовать "голые" таблицы для хранения данных и их последующего использования как-то не айс.
Гораздо продуктивнее использовать для этого кастомные сущности
примерно как-то так: http://blog.oskoui-oskoui.com/?p=8218
Если очень надо, можно даже относительно несложно (переопределением и расширением стандартных классов сущностей) добавить сущность, которая будет хранить свои данные в кастомной таблице БД.
Все это сразу добавляет Вашей таблице(сущности) всю мощь друпал:
готовый формы редактирования сущности (и стандартная раобта с ними)
готовые варианты отображения (и стандартная раобта с ними)
интеграция вашей сущности с другими модулями (views и т.п.)
и еще кучу всякого полезного..
В php есть класс для работы с датами/временем: http://php.net/manual/ru/class.datetime.php который умеет, как собирать дату из строки по формату, так и форматировать её в строку, или в unix time, который, вероятно вам нужен, с помощью DateTime::getTimestamp.
P.S. А вообще, выше правильно вам написали про использование сущностей, а не кастомной таблицы, и sql запросов для организации хранения данных. Так иногда, может и полезно делать, но когда это необходимо, и это вряд-ли ваш случай. В большинстве случаев, лучше всё же пользоваться https://www.drupal.org/docs/8/api/entity-api а не работать с базой напрямую.
Как я понимаю (может и ошибаюсь), данный функционал позволяет проще спроектировать сам модуль. Когда делал свой модуль по примерам, сталкивался со штангой не один раз (в основном наименование файлов, машинное имя и т.д.). Но разве в моем примере я не использую сущность (вложил файл с моим модулем)? Я как бы сказать тока начал познавать азы.
Я постепенно хочу усложнять задачу. Объясню свою задачу (которую сам себе и создал). У меня есть сайт на друпале 8, простой сайт с информацией (не коммерческая основа), на сайте выложена структура нашей организации (типо так положено). Т.е. заведены пользователи. И есть файл заявок созданный в екселе. Я часто слышу закройте файл заявок!!!
В файле заявок есть поля: № п/п; Организация; Перечень работ; Дата подачи заявления; и т.д.
Ну и решил, а что хороший пример для написания модуля. Конечным результатом которого должен быть вывод отчетов в Ексель варианте (потраченые часы и т.д.) и Верд варианте (отчет сотрудника для начальника). Ну и может быть какие то бланки отчетов типо отпуск и т.д. (Планы Napoléon Bonaparte).
Вот и начал потихоньку изучать формы и работу БД.