【发布时间】:2013-03-15 00:20:09
【问题描述】:
(对不起,我的问题不连贯:我在写这篇文章时试图回答一些问题,但在这里:)
我正在尝试在链接表中创建一个具有多对多关系的数据库模型,但它也具有每个链接的值,在本例中为库存表。 (这是我遇到的更多问题的基本示例,但我想在继续之前先用它测试一下)。
我已经使用exportmwb 为这个简单的示例生成了两个实体商店和产品,它们都显示在下面。
但是,现在的问题是我无法弄清楚如何使用 Doctrine 访问 stock.amount 值(带符号的 int,因为它可以是负数)。另外,当我尝试使用学说的 orm:schema-tool:create 函数创建表时
这仅产生了两个实体和三个表,一个作为没有值的链接表和两个数据表,因为多对多关系本身不是实体,所以我只能将 Product 和 Store 作为一个实体。
因此,从逻辑上讲,我尝试将我的数据库模型更改为将库存作为一个单独的表,其中包含与商店和产品的关系。我还重写了字段名,以便能够将其排除为问题的根源:
然后我发现我仍然没有得到 Stock 实体...而且数据库本身没有“金额”字段。
我真的需要能够将这些商店和产品绑定在一个库存表中(除其他外)......所以仅在产品本身上添加库存不是一种选择。
root@hdev:/var/www/test/library# php doctrine.php orm:info
Found 2 mapped entities:
[OK] Entity\Product
[OK] Entity\Store
当我创建数据库时,它仍然没有在 stock 表中提供正确的字段:
所以,在这里查找一些东西,我发现多对多连接不是实体,因此不能有值。所以我尝试将其更改为与其他表有关系的单独表,但它仍然不起作用。
我在这里做错了什么?
【问题讨论】:
-
好的,我发现有几处提到使用 Doctrine 建立多对多连接是不可能的,cmets 建议阻止这些关系.. 但是如果你真的被例如我在原始问题中描述的情况?我有一个与 Magento 兼容的完整数据库,它完全依赖于多对多关系。所以基本上我被告知“Doctrine ORM 不能处理多对多,不要使用它”??
-
如果我可以的话,我会给你+100,因为你付出了努力,以一种很好的方式准确地解释了我想知道的事情:-)
标签: php mysql doctrine-orm