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

関連する問題