添加hasMany关系到HABTM连接表

时间:2013-10-11 12:30:40

标签: php cakephp has-many has-and-belongs-to-many

我被困在我身上的东西困住了! 所以,我有

订购HABTM产品(带有products_order连接表)

联接表看起来像 id | product_id | order_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关系添加到表示连接表的模型中。

我创建了代表products_order连接表的ProductsOrder模型。 我创建了一个新表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(),
 [...]

您怎么看?

对你来说这是一个好方法吗? 在哪里存储订单的其他数据?

提前致谢!

编辑: 我最终在连接表中添加了一个字段,并考虑在json中添加我的额外内容。

0 个答案:

没有答案