我已經修改了我的表,這樣我的主鍵是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'
));
}
?>
你最近更新了你的模型還是修改了user_entity_varchars表?因爲cake緩存你的模型,你可以嘗試刪除緩存並查看它是否有效。你可以在tmp/cache/models中找到它 –
即使清除緩存,我也有同樣的問題。 – rottmanj
這很有趣。我從來沒有找到時間去處理它,但我認爲我看到了同樣的事情。在設置'$ this-> data ['Model'] ['id']'生成更新時,設置'$ this-> Model-> id'仍然生成新記錄。我以爲我只是誤讀了一些東西,所以我用了一些有用的東西,忘了回來了。 –