【问题标题】:What is the actual sense of .orm.yml files for doctrine in symfony2?.orm.yml 文件在 symfony2 中的教义的实际意义是什么?
【发布时间】:2014-08-05 20:04:53
【问题描述】:

我从 Symfony2 和 Doctrine 开始。现在我有了我的第一个操作,包括通过学说运行进行数据库交互,我想为两个实体创建一个 manyToOne 关联。我从在 YAML 中使用 Doctrine 配置文件定义模型开始。

例如(已经包括 manyToOne 关联)

Carsetup\MainBundle\Entity\VehicleWheelCombination:
    type: entity
    table: vehicle_wheel_combination
    indexes:
        vehicle_wheel_combinations_rim:
            columns:
                - rim_id
        vehicle_wheel_combinations_spacer:
            columns:
                - spacer_id
        vehicle_wheel_combinations_tyre:
            columns:
                - tyre_id
        vehicle_wheel_combinations_vehicles:
            columns:
                - vehicle_id
    id:
        id:
            type: integer
            nullable: false
            unsigned: false
            comment: ''
            id: true
            generator:
                strategy: IDENTITY
    fields:
        streetLegal:
            type: boolean
            nullable: false
            comment: ''
            column: street_legal
    manyToOne:
        rim:
            targetEntity: Rim
            cascade: {  }
            mappedBy: null
            inversedBy: null
            joinColumns:
                rim_id:
                    referencedColumnName: id
            orphanRemoval: false
        spacer:
            targetEntity: Spacer
            cascade: {  }
            mappedBy: null
            inversedBy: null
            joinColumns:
                spacer_id:
                    referencedColumnName: id
            orphanRemoval: false
        tyre:
            targetEntity: Tyre
            cascade: {  }
            mappedBy: null
            inversedBy: null
            joinColumns:
                tyre_id:
                    referencedColumnName: id
            orphanRemoval: false
        vehicle:
            targetEntity: Vehicle
            cascade: {  }
            mappedBy: null
            inversedBy: null
            joinColumns:
                vehicle_id:
                    referencedColumnName: id
            orphanRemoval: false
    manyToOne:
        rating:
            targetEntity: Rating
            cascade: {  }
            mappedBy: null
            inversedBy: null
            orphanRemoval: false
    lifecycleCallbacks: {  }

基于这些配置,我生成了实体。当我现在重新生成实体时,不会创建关联的 getter 或 setter。使用的命令:

php app/console doctrine:generate:entities Carsetup/MainBundle/Entity/VehicleWheelCombination

是的,我可以直接在实体中创建关联,但我不明白的是:那么配置文件的实际原因是什么?为什么我不首先创建实体?还是我做错了什么?

谢谢!

【问题讨论】:

  • 我在发布后才意识到,我实际上已经有 manyToOne 并且我实际上正在寻找 oneToMany。现在生成也起作用了。现在我遇到了不同的错误。不过,这似乎已解决。
  • 我修好了。在接下来的 8 小时内无法回答我自己的问题,但在那之后我将发布我的工作 orm.yml。

标签: php symfony doctrine-orm doctrine


【解决方案1】:

我让它工作了。我不想让其他可能面临类似问题的人保留正确的 orm.yml 文件。这是我为相关实体工作的学说配置文件:

Carsetup\MainBundle\Entity\VehicleWheelCombination:
    type: entity
    table: vehicle_wheel_combination
    indexes:
        vehicle_wheel_combinations_rim:
            columns:
                - rim_id
        vehicle_wheel_combinations_spacer:
            columns:
                - spacer_id
        vehicle_wheel_combinations_tyre:
            columns:
                - tyre_id
        vehicle_wheel_combinations_vehicles:
            columns:
                - vehicle_id
    id:
        id:
            type: integer
            nullable: false
            unsigned: false
            comment: ''
            id: true
            generator:
                strategy: IDENTITY
    fields:
        streetLegal:
            type: boolean
            nullable: false
            comment: ''
            column: street_legal
    manyToOne:
        rim:
            targetEntity: Rim
            cascade: {  }
            mappedBy: null
            inversedBy: null
            joinColumns:
                rim_id:
                    referencedColumnName: id
            orphanRemoval: false
        spacer:
            targetEntity: Spacer
            cascade: {  }
            mappedBy: null
            inversedBy: null
            joinColumns:
                spacer_id:
                    referencedColumnName: id
            orphanRemoval: false
        tyre:
            targetEntity: Tyre
            cascade: {  }
            mappedBy: null
            inversedBy: null
            joinColumns:
                tyre_id:
                    referencedColumnName: id
            orphanRemoval: false
        vehicle:
            targetEntity: Vehicle
            cascade: {  }
            mappedBy: null
            inversedBy: null
            joinColumns:
                vehicle_id:
                    referencedColumnName: id
            orphanRemoval: false
    oneToMany:
        rating:
            targetEntity: Rating
            cascade: {  }
            mappedBy: vehicleWheelCombination
            inversedBy: null
            orphanRemoval: false
    lifecycleCallbacks: {  }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-03
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-12
    • 2021-10-07
    • 2013-01-04
    相关资源
    最近更新 更多