2011-03-09 129 views
1

我會認爲刪除將是非常簡單的,我一直無法弄清楚爲什麼我得到這些錯誤和刪除不起作用。我試着對記錄的id進行硬編碼,然後運行那一行代碼。爲什麼我會得到這些錯誤,以及我將如何去尋找如何解決它。幫助cakephp刪除錯誤

$this->RentalLineitem->delete(1979); 

我收到以下錯誤與簡單刪除:

Warning (512): SQL Error: 1066: Not unique table/alias: 'Inventory' [CORE\cake\libs\model\datasources\dbo_source.php, line 684] 

    Query: SELECT `RentalLineitem`.`ri_num`, `RentalLineitem`.`h_num`, `RentalLineitem`.`i_num` FROM `rental_inv` AS `RentalLineitem` LEFT JOIN `rental_in` AS `Rental` ON (`RentalLineitem`.`ri_num` = `Rental`.`ri_num`) LEFT JOIN `hotel` AS `Hotel` ON (`RentalLineitem`.`h_num` = `Hotel`.`h_num`) LEFT JOIN `inv` AS `Inventory` ON (`RentalLineitem`.`i_num` = `Inventory`.`id`) LEFT JOIN `inv` AS `Inventory` ON (`Inventory`.`i_num` = `RentalLineitem`.`id`) WHERE `RentalLineitem`.`id` = 1979 LIMIT 1 

    Query: DELETE `RentalLineitem` FROM `rental_inv` AS `RentalLineitem` LEFT JOIN `inv` AS `Inventory` ON (`RentalLineitem`.`i_num` = `Inventory`.`id`) LEFT JOIN `rental_in` AS `Rental` ON (`RentalLineitem`.`ri_num` = `Rental`.`ri_num`) LEFT JOIN `hotel` AS `Hotel` ON (`RentalLineitem`.`h_num` = `Hotel`.`h_num`) LEFT JOIN `inv` AS `Inventory` ON (`RentalLineitem`.`i_num` = `Inventory`.`id`) WHERE `RentalLineitem`.`id` = 1979 

我想通了,只要我點擊後按鈕。奇怪的是,我工作了一個小時無法弄清楚發生了什麼,但我發佈了這個問題,我立刻意識到我的RentalLineitem模型中有2條記錄指向庫存。但我不知道如何刪除這個問題。

+0

您可以發佈您的模型類,特別是RentalLineItem和庫存嗎? – NathanGaskin 2011-03-09 12:46:17

回答

2

你可以在這裏發佈你的模型協會嗎?我認爲你的模型掛鉤的方式存在問題,因爲你可以清楚地看到查詢似乎使用相同的別名加入同一個表(inv AS Inventory)(原因是失敗)

+0

這是非常可怕的。它說我不能接受你的答案6分鐘。 – stephenbayer 2011-03-09 12:49:49

+0

是的,你必須等待一下:) – JohnP 2011-03-09 12:51:03

+1

那麼解決方案是什麼? – mgPePe 2012-01-20 12:01:42