====== Аннотации ======
===== @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") */
@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 =====