ИЗМЕНИТЬ
Я изменил свою таблицу так, чтобы мой первичный ключ был id, и все работает правильно. Все еще пытаюсь разобраться в этой проблеме.
У меня есть модель ниже, которую я использую для обработки различных значений eav. Проблема, которую я вижу, заключается в том, что когда я использую $ Model-> save (), он всегда будет пытаться вставить, а не обновить. Даже если я установлю свойство / значение primaryKey.
Событие при вставке, я заметил, что получаю этот запрос ниже в моих журналах. Первичный ключ таблицы - value_id.
SELECT COUNT(*) AS `count` FROM `user_entity_varchars` AS `UserEntityVarchar`
WHERE `UserEntityVarchar`.`id` = '1'
Когда я выводю отладку структуры модели, я вижу следующее:
[useDbConfig] => default
[useTable] => user_entity_varchars
[displayField] =>
[id] =>
[data] => Array
(
)
[table] => user_entity_varchars
[primaryKey] => id
По какой-то причине он не распознает, что первичный ключ установлен в классе модели.
Это модель, которую я использую:
<?php
class UserEntityVarchar extends UserAgentAppModel {
var $name = 'UserEntityVarchar';
var $primaryKey = 'value_id';
var $belongsTo = array(
'UserEntity'=>array(
'foreignKey' => 'entity_id'
));
var $hasOne = array(
'EavAttribute' => array(
'foreignKey' => 'attribute_id'
));
}
?>
2 ответа
Вы устанавливаете primaryKey в модели как value_id, попробуйте изменить эту строку на:
<?php
class UserEntityVarchar extends UserAgentAppModel {
var $name = 'UserEntityVarchar';
/*var $primaryKey = 'value_id'; Change this to*/
var $primaryKey = 'id';
var $belongsTo = array(
'UserEntity'=>array(
'foreignKey' => 'entity_id'
));
var $hasOne = array(
'EavAttribute' => array(
'foreignKey' => 'attribute_id'
));
}
?>
Надеюсь, это поможет! ваше здоровье
Пд, это мой первый пост!
Попробуйте распечатать данные в контроллере перед сохранением и проверьте, получаете ли вы Id
по почте или нет. Если вы не получаете Id
в сообщении, то model
-> save
будет вставлен, а не обновлен.
Похожие вопросы
Новые вопросы
php
PHP - это широко используемый высокоуровневый, динамический, объектно-ориентированный и интерпретируемый язык сценариев, в первую очередь предназначенный для серверной веб-разработки. Используется для вопросов о языке PHP.