1
我有一個產品控制器,當我保存一個新產品時,我想將一些記錄保存到另一個相關控制器,以記錄產品與哪些類別相關聯。cakephp - 使用create()不能按預期工作
我的代碼我使用的是:
$this->Product->create();
if ($this->Product->save($this->request->data)) {
$newProductId = $this->Product->getInsertID();
//associate products with categories
foreach($categoriesToSave as $key=>$value) {
$saveArray['CategoriesProduct'] = array('category_id'=>$value, 'product_id'=>$newProductId);
$this->Product->CategoriesProduct->create();
$this->Product->CategoriesProduct->save($saveArray);
$this->Product->CategoriesProduct->clear();
}
}
出於某種原因,不過,即使$categoriesToSave
中有10個項目中,只有最後一個被保存。因此,它只創建一個新的CategoriesProduct項目,並將每個記錄保存在最後一個記錄中,而不是新記錄create()
。
任何人都可以解釋我做錯了什麼,我怎麼能做到這一點?
對'CategoriesProduct'模型有'唯一'約束嗎?還是一些具體的定義? Product'和'CategoriesProduct'之間有什麼關係? – Holt
你在調試環境中嗎?如果沒有,我總是檢查日誌,當有什麼事情發生時不清楚。他們位於這裏:app \ tmp \ logs – enigmasck
omg ...我是一個愚蠢的白癡。我忽略了categories_products表的主鍵 - 謝謝指出:) –