所以也许我只是错过了一些东西。SaveAll 数据工作正常......如果我取出 beforeSave 或者无论保存什么都只返回 true。我要做的是检查 user_group_id/user_friend_id 的组合是否已经存在。如果不保存。
但是,如果您为一条记录返回 false,则似乎整个 saveAll 函数将退出运行。也许这是故意的?官方文档仅限于回答这个问题。
显然我可以将检查移至一个函数,但这似乎更好地涵盖了每个插入/更新。
function beforeSave($options) {
//dont let any duplicates be saved
$count = $this->find('count', array(
'conditions' => array(
'user_group_id' => $this->data['UserGroupFriend']['user_group_id'],
'user_friend_id' => $this->data['UserGroupFriend']['user_friend_id'],
)));
if ($count)
return false;
else
return true;
}