2011-10-24 211 views
0

我配置了'prefix' => 'hq_', 並創建了一個表:hq_products(pd_id, pd_price, pd_name,pd_date)刪除數據庫中的記錄cakephp

在控制器中,我想刪除一個產品。我用:

$productId = (int) $this->params['url']['id']; 
$this->Product->deleteAll(array('Product.pd_id' => $productId)); 

,並收到錯誤:

Warning (512): SQL Error: 1054: Unknown column 'Product.id' in 'field list' [CORE\cake\libs\model\datasources\dbo_source.php, line 684]

查詢:

SELECT `Product`.`id` FROM `hq_products` AS `Product` WHERE `Product`.`pd_id` = 1 

我也用:$this->Product->delete($productId);同樣的錯誤。

請幫幫我。

+1

向我們展示您的表格結構。無論如何,你確定你的桌子上有一個ID字段嗎? –

+0

您的錯誤消息顯示「Product.id」爲未知字段,但您在查詢中使用了Product.pd_id? –

+0

您的查詢是'SELECT',但它應該是'DELETE'。你確定你粘貼了正確的查詢嗎? – JJJ

回答

2

在你產品模式,你需要配置$primaryKeymodel attribute

class Product extends AppModel { 
    var $primaryKey = 'pd_id'; 
} 

CakePHP的期待您的hq_products表的主鍵是id,但你必須把它命名爲pd_id。每當您偏離conventions時,都需要通知CakePHP。

+0

非常感謝,沒關係。 – kietnghiem