@ORM\Entity
@ORM\Table(name="project_artikul") @ORM\Table(name="application", options={"comment" = "Funding applications"});
@MappedSuperclass
@InheritanceType("SINGLE_TABLE")
@DiscriminatorColumn(name="discr", type="string")
@DiscriminatorMap({"person" = "Person", "employee" = "Employee"})
@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
Описывает первичный ключ
@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(sequenceName="tablename_seq", initialValue=1, allocationSize=100)
@OneToOne(targetEntity="Shipping") @OneToOne(targetEntity="Cart", mappedBy="customer") @OneToOne(targetEntity="Customer", inversedBy="cart")
@JoinColumn(name="shipping_id", referencedColumnName="id")
@ManyToMany(targetEntity="Group")
@OrderBy({"name" = "ASC"})
@JoinTable( name="User_Group", joinColumns={@JoinColumn(name="User_id", referencedColumnName="id")}, inverseJoinColumns={@JoinColumn(name="Group_id", referencedColumnName="id")})
@ORM\OneToMany(targetEntity="Interior", mappedBy="collection")
mappedBy - обязательный атрибут, указывает имя свойства в присоединённой таблице