Как в Doctrine для embedded-поля задать имя поля в таблице БД?

В Doctrine, для задания имени поля в таблице БД для embedded-поля, вы можете использовать аннотацию @ORMColumn. Embedded-поле представляет собой объект, который может содержать внутри себя другие свойства и ассоциации.

Для того, чтобы задать имя поля в таблице БД для embedded-поля, вы должны указать имя поля в аннотации @ORMColumn, которая будет размещена над свойством, представляющим embedded-поле. Например:

use DoctrineORMMapping as ORM;

/**
 * @ORMEntity
 */
class User
{
    // ...

    /**
     * @ORMEmbedded(class="Address")
     */
    private $address;
    
    // ...
}

/**
 * @ORMEmbeddable
 */
class Address
{
    /**
     * @ORMColumn(name="street_name", type="string")
     */
    private $streetName;
    
    // ...
}

В приведенном примере, для embedded-поля $address класса User указана аннотация @ORMEmbedded. Для свойства $streetName класса Address указана аннотация @ORMColumn с параметром name="street_name", где street_name - это желаемое имя поля в таблице БД для данного свойства embedded-поля.

Таким образом, при генерации схемы БД с использованием Doctrine, будет создано поле с именем street_name в таблице, соответствующей классу User.

Надеюсь, данное объяснение является полезным и поможет вам разобраться с заданием имени поля в таблице БД для embedded-поля в Doctrine.