修改
我修改了我的表,以便我的主键是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'
));
}
?>
答案 0 :(得分:0)
您正在将模型上的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'
));
}
?>
希望它有所帮助! 欢呼声
pd,这是我的第一篇文章!
答案 1 :(得分:0)
尝试在保存之前在控制器中打印数据,并检查您是否在帖子中获得Id
。
如果您未在帖子中显示Id
,则model
- &gt; save
将插入而不会更新。