【问题标题】:Delete a record in database cakephp删除数据库 cakephp 中的一条记录
【发布时间】:2011-10-24 17:44:04
【问题描述】:

我有配置'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);同样的错误。

请帮帮我。

【问题讨论】:

  • 向我们展示您的表结构。无论如何,你确定你的表中有一个 id 字段吗?
  • 您的错误消息为未知字段显示Product.id,但您在查询中使用Product.pd_id
  • 您的查询是SELECT,但应该是DELETE。您确定您粘贴了正确的查询吗?

标签: php mysql cakephp


【解决方案1】:

在你的Product模型中,你需要配置$primaryKeymodel attribute

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

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

【讨论】:

    猜你喜欢
    • 2019-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多