Удалить запись в базе данных CakePHP - PullRequest
0 голосов
/ 24 октября 2011

У меня есть конфиг '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 Ответ

2 голосов
/ 24 октября 2011

В вашей модели Product вам необходимо настроить атрибут модели $primaryKey :

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

CakePHP ожидает первичный ключ в вашем hq_productsтаблица будет id, но вы назвали ее pd_id.Вы должны сообщать CakePHP всякий раз, когда вы отклоняетесь от соглашений .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...