2011-03-09 3 views
1

삭제가 매우 간단하다고 생각할 것입니다. 왜 이러한 오류가 발생하고 삭제가 작동하지 않는지 알 수 없습니다. 레코드의 ID를 하드 코딩하여 한 줄의 코드 만 실행하려고했습니다. 왜 이러한 오류가 발생하며이를 수정하는 방법을 찾아야합니다.cakephp delete error with

$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 모델에 Inventory를 가리키는 2 개의 레코드가 있음을 곧 깨닫는다. 하지만 질문을 삭제하는 방법을 모르겠습니다.

+0

모델 클래스, 특히 RentalLineItem 및 Inventory를 게시 할 수 있습니까? – NathanGaskin

답변

2

여기에 모델 연결을 게시 할 수 있습니까? 같은 별칭을 사용하여 동일한 테이블 (inv AS 인벤토리)에 쿼리가 연결되어있는 것을 분명하게 볼 수 있기 때문에 모델을 연결 한 방식에 문제가 있다고 생각합니다 (이유는 실패 함)

+0

그게 전부 였어. 6 분 동안 너의 대답을 받아 들일 수 없다고. – stephenbayer

+0

그래, 조금 기다려야 해 :) – JohnP

+1

그래서 해결책은 무엇입니까? – mgPePe