Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony2:如何使用YAML文件创建条令实体?_Php_Symfony_Doctrine Orm_Yaml - Fatal编程技术网

Php Symfony2:如何使用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应用程序/控制台原则:生成”名称空间中找不到。

我希望我的实体名称与数据库表名称不同(表名称有一个前缀,我不希望在实体中使用。这是我无法控制的。它是一个现有的大型数据库)

例如,表名应该是ab_product,我需要实体名只是product,而不是AbProduct

使事情复杂化的是,我几乎没有与此需求相关的表(ab_订单、ab_订单、产品等)

在symfony1中,我曾经在一个YAML文件中定义所有这些映射和关系,然后使用一个命令生成所有实体类


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