我有配置'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);
相同的错误。
请帮帮我。
答案 0 :(得分:2)
在产品模型中,您需要配置$primaryKey
model attribute:
class Product extends AppModel {
var $primaryKey = 'pd_id';
}
CakePHP希望hq_products
表中的主键为id
,但您已将其命名为pd_id
。每当您偏离conventions时,都需要通知CakePHP。