Поле time
Поле time создаёт в сущности колонку
для хранения времени без даты. В базе данных
для него используется тип TIME. Первым
параметром в атрибут передаётся имя поля, а
вторым - массив опций с настройками колонки.
Синтаксис
#[Column(type: 'time', options: [])]
Пример
Давайте создадим сущность Article с полем
time для хранения времени публикации:
<?php
namespace AppEntity;
use DoctrineORMMapping as ORM;
#[ORMEntity]
#[ORMTable(name: 'articles')]
class Article
{
#[ORMId]
#[ORMGeneratedValue]
#[ORMColumn(type: 'integer')]
private ?int $id = null;
#[ORMColumn(type: 'string', length: 255)]
private string $title;
#[ORMColumn(type: 'time')]
private DateTimeInterface $time;
public function getId(): ?int
{
return $this->id;
}
public function getTime(): DateTimeInterface
{
return $this->time;
}
public function setTime(DateTimeInterface $time): self
{
$this->time = $time;
return $this;
}
}
?>
Пример
Давайте создадим объект и установим время:
<?php
namespace AppController;
use AppEntityArticle;
use DateTime;
use DoctrineORMEntityManagerInterface;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAttributeRoute;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_create')]
public function create(EntityManagerInterface $em): Response
{
$article = new Article();
$article->setTime(new DateTime('14:30:00'));
$em->persist($article);
$em->flush();
return new Response('created');
}
}
?>
Результат выполнения кода:
"created"
Пример
Давайте выведем сохранённое время в формате
H:i:s:
<?php
namespace AppController;
use AppEntityArticle;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAttributeRoute;
class ArticleController extends AbstractController
{
#[Route('/article/{id}', name: 'article_show')]
public function show(Article $article): Response
{
return new Response($article->getTime()->format('H:i:s'));
}
}
?>
Результат выполнения кода для адреса /article/1:
"14:30:00"
Смотрите также
-
поле
date,
которое хранит дату без времени -
поле
datetime,
которое хранит дату и время вместе -
поле
time_immutable,
которое хранит время в неизменяемом объекте -
поле
nullable,
которое разрешает хранить значение NULL