[英]Use HABTM using transactions in empty Database CakePHP
我正在嘗試使用事務將數據存儲在空數據庫中。 現在這對我不起作用。 這是我的ERD: https : //www.dropbox.com/s/pfakd7xplsvr7cc/db_erd.PNG
請注意,首先所有三個表都是空的。 然后將以下數組發送到數據庫:
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_terms表中進行選擇,當然,它什么也收不到。 到此為止...。它也不會嘗試插入terms表中。
現在,如果我看這樣的教程: http : //www.pabloleanomartinet.com/cakephp-2-x-saving-and-validating-a-habtm-relation-example/看來我沒有做錯任何事情。 ..但是,如果我仔細觀察,看起來教程中的TAGS表已經被填滿了。 但是我不知道如何在插入產品並使用交易將它們鏈接在一起之前首先獲得術語ID。
有誰嗎?
問題解決了。 似乎需要填寫術語表,否則cakePHP不知道要連接哪個術語。
因此,正確的解決方案是先檢查或存在術語,否則將術語插入術語表中,然后使用HABTM插入產品(在插入數組中使用術語的ID),因此products_terms表也將被填充。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.