Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 向HABTM联接表添加hasMany关系_Php_Cakephp_Has Many_Has And Belongs To Many - Fatal编程技术网

Php 向HABTM联接表添加hasMany关系

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',

我被什么东西缠住了,快把我累死了! 所以,我有

订购HABTM产品(带有产品\订单联接表)

联接表如下所示 id |产品id |订单id |数量|价格

目前,当我打一个查找电话时,我有以下结果

[...]
'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”可能是错误的,但我在谈论模型之间的关系。。。戴维,你可以选择多种酱汁,但也可以是酱汁、配菜或其他任何东西。我无法为每个不同的额外数据创建表。也许我解释得不对