【问题标题】:Symfony2 Entity with DBAL (No ORM)带有 DBAL 的 Symfony2 实体(无 ORM)
【发布时间】:2015-08-01 05:52:23
【问题描述】:

我正在做一个 SF2 项目,我不能将 Doctrine2 用作 ORM,这意味着我已经有一个包含表和数据的数据库。我必须在我的控制器中使用纯 SQL(我目前正在使用 DBAL 来执行此操作),并且我必须创建对象以表示事物。

当我过去使用 Doctrine2 时,我通过 app/console 学说创建实体:generate:entity,而 Doctrine2 正在处理所有内容(更新、持久化...)

但是现在,当我使用 DBAL 时,如何创建对象(即使我不使用 ORM,我也可以将其称为实体吗?)以满足我的需要?

我打算像往常一样做:在我的包中创建一个实体文件夹,其中包含实体作为没有 ORM 注释的对象,并创建一个方法,我使用 SQL(数组中的查询结果)和水合从数据库中检索数据它使用对象中的 getter/setter。

这是个好主意还是您有更好的解决方案?我从 SF2 开始,我读到有些人创建了一个服务来检索数据,然后使用数据转换器将数据转换为对象。

谢谢。

【问题讨论】:

    标签: symfony orm doctrine-orm dbal


    【解决方案1】:

    您正在描述 Active Record 模式。为此,您可以使用与 Symfony 原生集成的 Propel。在Symfony's official documentation 上阅读它。

    我还建议您使用 ORM。您可以根据需要设置与现有表的映射:如果您不需要实体中的某些字段,您甚至可以省略它们。 Doctrine ORM 将为您完成所有艰苦的工作。

    【讨论】:

    • 您好,谢谢您的回复,但是我不能使用 Doctrine,因为它会从我的实体生成表,我必须保持数据库结构不变
    • 不求就不会生成表格!
    【解决方案2】:

    您仍然可以在不更改数据库的情况下通过从数据库创建类来使用 ORM。你应该阅读this in the symfony documentation

    【讨论】:

      猜你喜欢
      • 2023-03-24
      • 1970-01-01
      • 2013-08-04
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 2013-06-01
      • 2013-07-09
      • 1970-01-01
      相关资源
      最近更新 更多