Php Symfony2:如何使用YAML文件创建条令实体?
我希望我的实体名称与数据库表名称不同(表名称有一个前缀,我不希望在实体中使用。这是我无法控制的。它是一个现有的大型数据库) 例如,表名应该是ab_product,我需要实体名只是product,而不是AbProduct 使事情复杂化的是,我几乎没有与此需求相关的表(ab_订单、ab_订单、产品等) 在symfony1中,我曾经在一个YAML文件中定义所有这些映射和关系,然后使用一个命令生成所有实体类Php Symfony2:如何使用YAML文件创建条令实体?,php,symfony,doctrine-orm,yaml,Php,Symfony,Doctrine Orm,Yaml,我希望我的实体名称与数据库表名称不同(表名称有一个前缀,我不希望在实体中使用。这是我无法控制的。它是一个现有的大型数据库) 例如,表名应该是ab_product,我需要实体名只是product,而不是AbProduct 使事情复杂化的是,我几乎没有与此需求相关的表(ab_订单、ab_订单、产品等) 在symfony1中,我曾经在一个YAML文件中定义所有这些映射和关系,然后使用一个命令生成所有实体类 Symfony 2中是否有类似的命令。我在“php应用程序/控制台原则:生成”名称空间中找不到。
Symfony 2中是否有类似的命令。我在“php应用程序/控制台原则:生成”名称空间中找不到。可以通过在实体中指定表键来实现这一点
# src/Acme/StoreBundle/Resources/config/doctrine/Product.orm.yml
Acme\StoreBundle\Entity\Product:
type: entity
table: ab_product <-------- This is what you are looking for
id:
id:
type: integer
generator: { strategy: AUTO }
fields:
name:
type: string
length: 100
price:
type: decimal
scale: 2
description:
type: text
你可以在这里找到更多信息:这里有一个关于这方面的烹饪书条目:
由于您已经有了映射数据,您基本上只需要运行
原则:生成:实体
我可以创建YAML文件(或原则2的多个文件)。我找不到的是从YAML文件创建实体类(PHP类)的方法。我现在很困惑。如果您正在寻找使用命令行生成它的方法,我认为这是不可能的,但是,您可以生成类,假装您的关联只是基本属性,然后编辑yaml文件。我正在寻找使用命令行生成实体的方法。我很困惑为什么这样的功能不存在,因为它是一个常见的用例(当然,我可以考虑创建我自己的东西)。此功能存在于版本1中。在那里,我将创建一个YAML文件,并将其作为映射文件进行维护。每当我需要更改时,我都会首先编辑YAML文件,然后重新创建PHP实体类。同样,我不认为您可以,但如果我被证明是错误的,最好知道您可以简单地运行应用程序/控制台原则:generate:entities;如果您的映射是正确的,那么这将生成实体以及基本的getter和setter。它尝试为所有数据库表生成实体,当它找到没有主键的数据库表时失败(正如我提到的,这是一个我没有控制权的数据库。它有400多个表,有些没有主键)。条令:generate:entities有一个--filter选项,但它不允许筛选表,它只用于筛选实体。我找不到一种方法来将其用于我的案例(如果我错了,请纠正我)。更新。很抱歉,我认为我运行的命令是条令:mapping:import,而不是这个命令。我将重试此命令。
manyToOne:
order:
targetEntity: Order
inversedBy: products
joinColumn:
name: ab_order
referencedColumnName: id