Поле boolean
Поле boolean в сущности Doctrine хранит
логическое значение: true или false.
В базе данных такое поле обычно представлено типом
TINYINT(1) или BOOLEAN. Первым
параметром атрибута Column передаётся тип
поля, а именованные параметры задают дополнительные
настройки: nullable, options и другие.
Синтаксис
#[Column(type: 'boolean', options: ['default' => false])]
Пример
Давайте создадим сущность Article с полем
published типа boolean:
<?php
namespace AppEntity;
use DoctrineORMMapping as ORM;
#[ORMEntity]
class Article
{
#[ORMId]
#[ORMGeneratedValue]
#[ORMColumn(type: 'integer')]
private ?int $id = null;
#[ORMColumn(type: 'string', length: 255)]
private string $title = '';
#[ORMColumn(type: 'boolean', options: ['default' => false])]
private bool $published = false;
public function getId(): ?int
{
return $this->id;
}
public function getTitle(): string
{
return $this->title;
}
public function setTitle(string $title): void
{
$this->title = $title;
}
public function isPublished(): bool
{
return $this->published;
}
public function setPublished(bool $published): void
{
$this->published = $published;
}
}
?>
Пример
Давайте создадим объект, установим значения и выведем результат:
<?php
namespace AppController;
use AppEntityArticle;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
class ArticleController extends AbstractController
{
public function index(): Response
{
$article = new Article();
$article->setTitle('article');
$article->setPublished(true);
$res = $article->isPublished() ? 'true' : 'false';
return new Response($res);
}
}
?>
Результат выполнения кода:
"true"
Пример
Давайте проверим значение по умолчанию, когда поле
published не задано:
<?php
namespace AppController;
use AppEntityArticle;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
class ArticleController extends AbstractController
{
public function index(): Response
{
$article = new Article();
$article->setTitle('article');
$res = $article->isPublished() ? 'true' : 'false';
return new Response($res);
}
}
?>
Результат выполнения кода:
"false"