Php 向HABTM联接表添加hasMany关系
我被什么东西缠住了,快把我累死了! 所以,我有 订购HABTM产品(带有产品\订单联接表) 联接表如下所示 id |产品id |订单id |数量|价格 目前,当我打一个查找电话时,我有以下结果Php 向HABTM联接表添加hasMany关系,php,cakephp,has-many,has-and-belongs-to-many,Php,Cakephp,Has Many,Has And Belongs To Many,我被什么东西缠住了,快把我累死了! 所以,我有 订购HABTM产品(带有产品\订单联接表) 联接表如下所示 id |产品id |订单id |数量|价格 目前,当我打一个查找电话时,我有以下结果 [...] 'Product' => array( (int) 0 => array( 'id' => '137', 'category_id' => '2', 'restaurant_id' => '10000',
[...]
'Product' => array(
(int) 0 => array(
'id' => '137',
'category_id' => '2',
'restaurant_id' => '10000',
'title' => 'Salade Quan',
'description' => 'Crudités Chinoises, Porc, Crabe, Crevettes',
'price' => '9',
'tva_id' => '2',
'img' => null,
'img_small' => '',
'img_medium' => '',
'maj_img' => '2012-10-24 15:38:56',
'ProductsOrder' => array(
'id' => '35415',
'product_id' => '137',
'order_id' => '15417',
'quantity' => '1',
'price' => '9',
'tva_id' => '2',
'meal' => null
)
),
[...]
但我想添加更多关于订单特定产品的数据。
通常,一种肉制品可以有一个副订单/一个或多个酱汁。。。
因此,我考虑向表示联接表的模型添加hasMany关系
我创建了模型ProductsOrder,它表示products\u order联接表。
我创建了一个新的表extras_order和他的模型,并向ProductsOrder模型添加了一个hasMany关系
我这样调用find方法:
$q = $this->Order->find('first', array(
'conditions' => array(
'Order.id' => $id,
),
'contain' => array(
'Product.Restaurant' => array('title'),
'State' => array('title'),
'Coursier' => array('full_name'),
'Product',
'Product.restaurant_id != ' . AppController::ID_RESTAURANT,
'AddressB' => array('Cp'),
'AddressD' => array('Cp'),
'Customer',
'ProductsOrder'
))
);
但它不工作,使我的事情,这不是一个好的解决办法。
我只有
[...]
'ProductsOrder' => array(),
[...]
你觉得怎么样
这对你来说是个好方法吗?
在何处存储订单的其他数据
提前谢谢
编辑:
最后,我在join表中添加了一个字段,并考虑在json中添加我的额外内容。看起来您需要重新访问本书的“Containable”部分。有许多事情是不正确的。通常,在一个订单有多个酱汁的情况下,您会创建一个“酱汁”表,其中包含所有可能的酱汁和一个带有订单id和酱汁id的联接表“订单酱汁”。每个订单可以有多个酱汁(多对多关系)我的“Containable”可能是错误的,但我在谈论模型之间的关系。。。戴维,你可以选择多种酱汁,但也可以是酱汁、配菜或其他任何东西。我无法为每个不同的额外数据创建表。也许我解释得不对