РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
163 of 258 menu

Поле number

Поле number относится к типу полей Doctrine и создаёт в базе данных колонку для хранения чисел. Оно используется, когда нужно хранить целые или дробные числа произвольной точности, например цены, количества или рейтинги. Первым параметром передаётся имя поля, вторым - массив опций. Среди опций чаще всего указывают precision и scale, которые задают общее число цифр и число цифр после запятой.

Синтаксис

#[ORM\Column(type: 'number', precision: precision, scale: scale)] private ?string $field = null;

Пример

Давайте создадим сущность Product с полем price типа number:

<?php namespace AppEntity; use DoctrineORMMapping as ORM; #[ORM\Entity] class Product { #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column(type: 'integer')] private ?int $id = null; #[ORM\Column(type: 'number', precision: 10, scale: 2)] private ?string $price = null; public function getId(): ?int { return $this->id; } public function getPrice(): ?string { return $this->price; } public function setPrice(string $price): self { $this->price = $price; return $this; } } ?>

После выполнения команды миграции в базе данных появится колонка price типа NUMERIC(10, 2).

Пример

Давайте запишем значение в поле и выведем его:

<?php namespace AppController; use AppEntityProduct; use DoctrineORMEntityManagerInterface; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ProductController extends AbstractController { #[Route('/product', name: 'product_create')] public function create(EntityManagerInterface $em): Response { $product = new Product(); $product->setPrice('123.45'); $em->persist($product); $em->flush(); return new Response($product->getPrice()); } } ?>

Результат выполнения кода:

"123.45"

Пример

Давайте создадим поле number без дробной части, только для целых чисел:

<?php namespace AppEntity; use DoctrineORMMapping as ORM; #[ORM\Entity] class Article { #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column(type: 'integer')] private ?int $id = null; #[ORM\Column(type: 'number', precision: 10, scale: 0)] private ?string $views = null; public function getId(): ?int { return $this->id; } public function getViews(): ?string { return $this->views; } public function setViews(string $views): self { $this->views = $views; return $this; } } ?>

В этом случае колонка будет создана как NUMERIC(10, 0) и сможет хранить только целые значения.

Смотрите также

  • поле integer,
    которое хранит целые числа
  • поле decimal,
    которое хранит точные дробные числа
  • поле float,
    которое хранит числа с плавающей точкой
  • параметр precision,
    который задаёт общее число цифр
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить