问题标签 [doctrine-orm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1232 浏览

php - 如何在 symfony 2 和教义 2 中自定义 sql 日志?

我需要添加 sql 日志记录才能在本机 WebProfileBundle 中工作。当我在应用程序配置中执行一个默认连接时,我会在日志中看到 sql 查询。但是我的应用程序使用许多连接到许多数据库服务器,所以我无法将所有可能的连接添加到配置文件。

我创建运行时连接,即:

然后我想,应该是这样的命令

我试图用 DependencyInjection 解决这个问题,以 DoctrineBundle 为例。但是没有运气。

任何有关实时代码或正确文档链接的帮助都会很棒

0 投票
3 回答
4675 浏览

php - 原则 2:按字段别名分组(错误:'...' 不指向类。)

我得到了这个 Doctrine 查询:

但它会引发异常消息:

如果我省略group byorder by,它可以工作。

在这种情况下我是否必须使用本机查询或在我的客户端代码中进行排序和分组(根据数据库中的数据量可能不是一个好主意......)或者是否有可能让这个查询工作?

谢谢!


编辑:

这是我目前的方法,不是很好,但暂时有效,因为数据库中没有太多数据:

0 投票
2 回答
2687 浏览

php - findBy 关系字段

给出无法识别的字段:所有者

当然有一个解决方法,但它看起来很难看

有没有机会在不编写我自己的方法的情况下使用 findBy?

0 投票
4 回答
9264 浏览

annotations - 从 db 模式生成带注释的学说 2 实体

是否可以从现有的数据库模式生成带有相关 docblock 注释的 Doctrine 2 实体?

0 投票
1 回答
202 浏览

php - 教义 2 中的“名称”属性

假设我有一个产品系统,可以有各种装饰(或印刷)选项。

大多数产品将具有类似的打印选项名称范围,但某些产品可能是单一产品独有的。

例如,我可以有一个可以有三种不同装饰选项的帽子:

  1. 无品牌
  2. 一种颜色打印
  3. 刺绣

我的目标是尽量减少管理员用户创建的装饰选项名称,以便它们始终相同。IE 我不希望一些装饰选项被称为“1 色打印”,然后另一个被称为“单色打印”。

所以我的计划是在 UI 中下拉现有的装饰选项名称,但也让他们可以选择添加一个新的选项(对于边缘情况)。

但是,每个装饰选项都有各种其他数据,例如设置成本、生产时间等,这些数据因产品而异。

例如,Hat1 和 Hat2 都可以有刺绣装饰选项,但 Hat1 的设置成本为 49 美元,Hat2 的设置成本仅为 35 美元。

所以我的问题是,构建我的实体的最佳方式是什么?我应该拥有三个实体:Product、DecorationOption 和 DecorationOptionName?还是只有两个实体:Product 和 DecorationOption?

请查看我的代码示例以进一步了解:

  1. 三实体选项
  2. 两个实体选项
0 投票
3 回答
13662 浏览

php - 我应该使用 EAV 模型吗?

我正在为电子商务应用程序设计我的数据库/域,我很难弄清楚如何存储产品。

该网站将出售各种各样的产品,钢笔、丁字裤、纹身、雨伞,应有尽有。这些产品中的每一个都有一些共同的属性,高度、宽度、长度、重量等,但有些产品有特殊的数据。例如,钢笔有不同的墨水颜色,笔尖/盖子和小册子可以有不同类型的折叠。到目前为止,我已经想到了大约 20 多个额外属性,但这些属性可能只适用于网站上 1% 的产品。

所以我想知道是否适合实施 EAV 模型来处理额外的数据。请记住,当客户在前端查看网站时,将会有一个过滤侧边栏,就像在 eBay 和 carsales.com.au 上一样。(所以请记住,会有相当多的查询)

我认为实现类表继承并不实际,因为系统需要保持灵活性。这是因为,在未来,我们可能会在新类型的产品中拥有更多的属性。

我考虑的另一件事是使用 NoSQL 数据库(可能是 MongoDB)但是我对这些类型的数据库几乎没有经验,它甚至可以解决我的问题吗?

审查选项:

  1. 具有大量列的单个产品实体
  2. 分离属性实体 (EAV)
  3. 切换到无模式持久性

我正在使用属性实体构建原型以查看它的灵活性,并测试性能以及查询如何失控。

编辑:当然,我对任何其他解决方案持开放态度。

0 投票
2 回答
576 浏览

php - Doctrine 2.0 准备好使用了吗?

我正在做一个小项目(学校学科部门的一些标记跟踪软件-带有sqlite DB的PHP前端)并决定使用ORM。

我已经查看了 RedBeanPHP,但它似乎对我来说有点太有限了。因此,我决定试一试 Doctrine。

我之前对 ORM 的唯一经验是 .NET 中的 LINQ to SQL。无论如何,我想知道我是否应该开始使用 Doctrine 2.0(目前处于测试阶段),或者我是否应该花一些时间来学习 1.2。

我正在寻找对两者都满意的人的反馈,更重要的是,我想知道 Doctrine 2.0 文档的完整程度。网站上是否有足够的信息让 Doctrine 新手(以及 ORM 新手)启动并运行 2.0,或者新版本的文档仍然很缺乏?

0 投票
1 回答
1013 浏览

php - 学说 2 dql 别名

有没有办法获得实体的 dql 别名,当使用标量水合时,学说添加到实体字段名称?

0 投票
2 回答
5299 浏览

php - Doctrine 2 中的公共字段如何“打破延迟加载”?

当我运行时doctrine orm:validate-schema,它会弹出一堆关于我的映射列是公开的并且没有使用 getter/setter 方法来包装它们的警告。它说他们“打破延迟加载”。我可以理解如何将关联的集合设为公开可能会出现问题(我确实将它们设为私有并包装它们),但这对于对象上的字段来说是个问题吗?据我所知,字段已满载。

0 投票
3 回答
19653 浏览

php - Doctrine 2. 自动生成代理

我有一个奇怪的问题。我想在 Doctrine 2 中关闭代理的自动生成。我发现这行代码应该做(并且做)这个把戏:

在我的测试环境中,代理位于application/proxies。IE:

当我在实时环境中时,我的代码突然在application/proxies/Proxies搜索代理,这不是实际位置。

我确实理解它与命名空间有关,但我不明白为什么它在使用setAutoGenerateProxy方法时表现不同。

有任何想法吗?

编辑

我确实使用以下方法生成了新代理:

选项。

这给了我这个输出:

查看最后一行,代理是在 /var/www/application/proxies 中生成的。目录列表如下所示:

所以没有额外的代理目录。但是当我刷新我认为有的网页时,它给了我以下错误:

为什么要添加额外的代理目录?如果我确实在每个请求上生成代理,它不会在额外的代理目录中查找。有人吗?

@Bryan M.:这不是解决方案,而是解决方法。此外,它不起作用。在生成代理时,如果应用您的建议,它们将在 APPPATHSYSTEM 中生成,我的 webapp 将尝试从 APPPATHSYSTEM.“代理”加载它们。问题是,如果我使用,系统会在不同位置查找代理:

如果 DEVELOPMENT 为真,它将查看 APPPATHSYSTEM。如果 DEVELOPMENT 设置为 false,它将查看 APPPATHSYSTEM."Proxies"。只是切换 DEVELOPMENT constance 会破坏我的应用程序,这在理论上是不可能的。