Инструменты пользователя

Инструменты сайта


php:doctrine:anotation

Аннотации

@ORM\Entity

@ORM\Entity

@ORM\Table

@ORM\Table(name="project_artikul")
@ORM\Table(name="application", options={"comment" = "Funding applications"});  

@MappedSuperclass

@MappedSuperclass

@InheritanceType

@InheritanceType("SINGLE_TABLE")

@DiscriminatorColumn

@DiscriminatorColumn(name="discr", type="string")

@DiscriminatorMap

@DiscriminatorMap({"person" = "Person", "employee" = "Employee"})  

@Column

@ORM\Column(type="integer") */</code>
@ORM\Column(type="string", options={"comment" = "The string to show in the dropdown "})  

Описывает поле

^ параметр ^ обяз. ^ по умолчанию ^ описание ^

type нет string Отображаемый тип для столбца.
name нет соответствует имени свойства Название столбца в базе данных.
length нет 255 Длина значения столбца в базе данных. (Применяется только для строковых типов).
unique нет FALSE Определяет, являются ли значения столбца уникальными.
nullable нет FALSE Могут ли значения столбца принимать пустые значения (NULL).
precision нет 0 Точность для неупакованных чисел с плавающей точкой. (Применяется только для столбцов типа DECIMAL.)
scale нет 0 Задает шкалу (scale) для неупакованных чисел с плавающей точкой. (Применяется только для столбцов типа DECIMAL.)
options нет

тип

имя mysql php
string VARCHAR string
integer INT на целочисленный тип.
smallint SMALLINT так же на целочисленный тип в PHP.
bigint BIGINT string
boolean булевый тип (в MySQL это TINYINT(1)) boolean
decimal DECIMAL double.
date DATETIME объект DateTime.
time TIME также объект DateTime.
datetime DATETIME или TIMESTAMP на объект DateTime
text CLOB string
object CLOB на объект PHP с помощью сериализации (serialize() и unserialize())
array CLOB на объект PHP с помощью сериализации (serialize() и unserialize())
float FLOAT (двойной точности) на тип double в PHP. Важно: Отображение работает только с настройками локали, в которых в качестве десятичного разделителя используется точка.

@id

@id

Описывает первичный ключ

@GeneratedValue

@GeneratedValue(strategy="SEQUENCE")

Стратегии генерации идентификаторов:

AUTO используется наиболее предпочтительная стратегия для текущей платформы БД. Для MySQL, SQLite и MsSQL это значение равно IDENTITY, для Oracle и PostgreSQL — SEQUENCE . Так что этот вариант самый универсальный.
SEQUENCE Для генерации идентификатора будет использована последовательность. Эта стратегия не обеспечивает полной совместимости, т.к. поддерживается только в Oracle и PostgreSql.
IDENTITY Сообщает Doctrine использовать специальные идентификационные столбцы, значение которых генерируется само при вставке новой записи в таблицу. Данный механизм поддерживается следующими платформами: MySQL/SQLite (AUTO_INCREMENT), MSSQL (IDENTITY) и PostgreSQL (SERIAL).
TABLE позволяет использовать отдельную таблицу для генерации идентификаторов. Этот механизм обеспечивает полую совместимость. *Но эта стратегия пока еще не реализована!*
NONE Идентификатор не генерируется и должен быть установлен вручную. Назначать его нужно до передачи сущности методу EntityManager#persist. Эта стратегия будет автоматически использована при отсутствии аннотации @GeneratedValue.

@SequenceGenerator

@SequenceGenerator(sequenceName="tablename_seq", initialValue=1, allocationSize=100)

@OneToOne

@OneToOne(targetEntity="Shipping")
@OneToOne(targetEntity="Cart", mappedBy="customer")
@OneToOne(targetEntity="Customer", inversedBy="cart")

@JoinColumn

@JoinColumn(name="shipping_id", referencedColumnName="id")

@ManyToMany

@ManyToMany(targetEntity="Group")

@OrderBy

@OrderBy({"name" = "ASC"})

@JoinTable

@JoinTable(
    name="User_Group", 
    joinColumns={@JoinColumn(name="User_id", referencedColumnName="id")},
    inverseJoinColumns={@JoinColumn(name="Group_id", referencedColumnName="id")})

@OneToMany

@ORM\OneToMany(targetEntity="Interior", mappedBy="collection")

mappedBy - обязательный атрибут, указывает имя свойства в присоединённой таблице

@ManyToOne

/var/www/source/data/pages/php/doctrine/anotation.txt · Последнее изменение: 2024/02/05 12:40 (внешнее изменение)