在订单表中,我有一个Customers表和Addresses表。客户可以拥有多个地址,因此我在yaml文件中设置了一对多关系。客户表的ID是自动生成的,所以在插入之后我不会知道Customers_id,但是Customers_id是地址表中的外键。
尽管每组数据都在子表单中,但两个表的信息都在同一表格中捕获。如何让Doctrine将数据插入Customers表,然后获取刚刚输入的Customers_id,并将其用作Addresses表的外键。
希望我能够解决问题的本质。
BTW我正在使用Zend Framework和Doctrine 1.2.3
答案 0 :(得分:1)
一旦您执行$ customer-&gt; save(),您可以使用$ customer-&gt; id(如果“id”是您的customer表的Customers_id列名称),以将Customers_id放入地址表中。< / p>
答案 1 :(得分:0)
一旦你做了$ customer-&gt; save();以下语句$ customer-&gt; identifier();应该给你身份证。
答案 2 :(得分:0)
假设您使用的是Doctrine 1.x,您可以执行以下操作:
$cusomer->Address[] = $address; // Assign multiple addresses in this manner
$customer->save();
这将首先将客户详细信息保存到数据库,然后存储地址数据。由于学说理解客户和地址之间的关系,因此ORM会将客户ID插入地址表中。此外,这将由Doctrine在事务中运行,该事务确保如果其中一个操作失败,则将回滚整个事务。