2011-10-24 68 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