0

我被一些正在杀死我的东西所困扰!所以我有

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

连接表看起来像 id | 产品编号 | order_id | 数量 | 价格

目前,当我拨打 find 电话时,我得到以下结果

[...]
'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 中添加我的附加内容。

4

0 回答 0