2011-03-09 110 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