删除数据库cakephp中的记录

时间:2011-10-24 17:44:04

标签: php mysql cakephp

我有配置'prefix' => 'hq_', 我创建了一个表:hq_products(pd_id, pd_price, pd_name,pd_date)

在控制器中,我想删除一个产品。我用过:

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

并收到错误:

  

警告(512):SQL错误:1054:'字段列表'中的未知列'Product.id'[CORE \ cake \ libs \ model \ datasources \ dbo_source.php,第684行]

查询:

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

我还使用了:$this->Product->delete($productId);相同的错误。

请帮帮我。

1 个答案:

答案 0 :(得分:2)

产品模型中,您需要配置$primaryKey model attribute

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

CakePHP希望hq_products表中的主键为id,但您已将其命名为pd_id。每当您偏离conventions时,都需要通知CakePHP。