使用HABTM在空数据库CakePHP中使用事务

使用HABTM在空数据库CakePHP中使用事务,php,mysql,cakephp,Php,Mysql,Cakephp,我正在尝试使用事务将数据存储在空数据库中。现在这对我不起作用了。这是我的ERD: 请注意,首先所有三个表都是空的。我将以下数组发送到数据库: array( 'Product' => array( 'slug' => 'c24b626d6701d3b07e30b233b989ff8811', 'product_name' => 'DAHLIA 5A', 'price_new' => '159.00',

我正在尝试使用事务将数据存储在空数据库中。现在这对我不起作用了。这是我的ERD:

请注意,首先所有三个表都是空的。我将以下数组发送到数据库:

array(
    'Product' => array(
        'slug' => 'c24b626d6701d3b07e30b233b989ff8811',
        'product_name' => 'DAHLIA 5A',
        'price_new' => '159.00',
        'affiliate_url' => 'http://example.com/feed.xml',
        'product_id_supplier' => 'c24b626d670133d3b07e30b2b989ff8811',
        'supplier_id' => 'some_supplier',
        'feedimport_id' => (int) 1
    ),
    'Image' => array(
        (int) 0 => array(
            'image' => 'product_image.JPG'
        )
    ),
    'Term' => array(
        'Term' => array(
            (int) 0 => array(
                'name' => 'Tommy Hilfiger'
            )
        )
    )
)
使用$this->getDataSource()。但它只填充图像和产品表。如果我查看日志文件,在插入products and images表之后,它似乎试图从products_terms表中进行选择,当然它没有收到任何反馈。它就停在那里。。。。它也不会尝试在terms表中插入

现在,如果我看这些教程: 看起来我没有做错什么。。。但如果我仔细看,教程中的标签表似乎已经填满了。。。。所以这可能就是问题所在?但我不知道如何首先获得术语ID,然后再插入产品并使用事务将它们链接在一起


有人这样做吗?

问题解决了。似乎需要填写术语表,否则cakePHP不知道要连接哪个术语

因此,正确的解决方案是首先检查术语是否存在,否则在术语表中插入术语,然后使用HABTM(使用插入数组中术语的ID)插入产品,这样也将填充products_Terms表