如何指定字段名称

时间:2014-05-20 21:48:53

标签: symfony orm doctrine-orm entity yaml

我有yaml格式的下一个实体:

BW\UserBundle\Entity\User:
    type: entity
    table: users
    repositoryClass: BW\UserBundle\Entity\UserRepository
    id:
        id:
            type: integer
            id: true
            generator:
                strategy: AUTO
    fields:
        username:
            type: string
            length: 25
            unique: true
        password:
            type: string
            length: 64
        email:
            type: string
            length: 60
            unique: true
        isActive:
            type: boolean
    lifecycleCallbacks: {  }

现在,当我更新方案时,我在DB中获得isActive字段名称,与属性名称相同。 如何在DB中指定属性名称isActive,如is_active字段名称?

3 个答案:

答案 0 :(得分:1)

您需要指定如下列名称:

BW\UserBundle\Entity\User:
    type: entity
    table: users
    repositoryClass: BW\UserBundle\Entity\UserRepository
    id:
        id:
            type: integer
            id: true
            generator:
                strategy: AUTO
    fields:
        username:
            type: string
            length: 25
            unique: true
        password:
            type: string
            length: 64
        email:
            type: string
            length: 60
            unique: true
        isActive:
            type: boolean
            column: is_active
    lifecycleCallbacks: {  }

更多相关内容 - http://docs.doctrine-project.org/en/2.0.x/reference/basic-mapping.html#property-mapping

答案 1 :(得分:1)

您可以指定数据库的列名

fields:
    username:
        type: string
        length: 25
        unique: true
    password:
        type: string
        length: 64
    email:
        type: string
        length: 60
        unique: true
    isActive:
        type: boolean
        column: is_active

答案 2 :(得分:0)

你在这里处理两种不同的约定。在Symfony中使用camel case来命名变量是很常见的。在数据库中,您经常会找到这个下划线的书面名称如果访问isActive属性,则实体模型会将其映射到数据库中的is_active列。