Поле integer
Поле integer описывает колонку таблицы
базы данных для хранения целых чисел. Оно
используется в атрибуте Column сущности
Doctrine. Первым параметром передаётся тип
'integer', а через именованные аргументы
задаются дополнительные опции: nullable,
options, name и другие.
Синтаксис
#[Column(type: 'integer', nullable: bool, options: array)]
Пример
Давайте создадим сущность Article с полем
views типа integer для хранения
количества просмотров:
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity]
class Article
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column(type: 'integer')]
private int $id;
#[ORM\Column(type: 'integer')]
private int $views;
public function getId(): int
{
return $this->id;
}
public function getViews(): int
{
return $this->views;
}
public function setViews(int $views): void
{
$this->views = $views;
}
}
?>
Пример
Давайте создадим объект сущности и установим значение поля:
<?php
namespace App\Controller;
use App\Entity\Article;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_create')]
public function create(): Response
{
$article = new Article();
$article->setViews(100);
return new Response((string) $article->getViews());
}
}
?>
Результат выполнения кода:
"100"
Пример
Давайте сделаем поле integer необязательным
с помощью опции nullable:
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity]
class Article
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column(type: 'integer')]
private int $id;
#[ORM\Column(type: 'integer', nullable: true)]
private ?int $views = null;
public function getId(): int
{
return $this->id;
}
public function getViews(): ?int
{
return $this->views;
}
public function setViews(?int $views): void
{
$this->views = $views;
}
}
?>
Пример
Давайте зададим собственное имя колонки
через опцию name:
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity]
class Article
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column(type: 'integer')]
private int $id;
#[ORM\Column(type: 'integer', name: 'article_views')]
private int $views;
public function getId(): int
{
return $this->id;
}
public function getViews(): int
{
return $this->views;
}
public function setViews(int $views): void
{
$this->views = $views;
}
}
?>