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