我是CakePHP的新手,我正在尝试保存一些相关数据。
现在我有一个消息数据库和一个用户数据库,我想保存在users表中发送消息的用户,但如果他们发送多条消息,这些用户可能已经在那里。
现在我正在更新:
$this->Message->saveAll(array(
'Message' => array(
'contents' => $contents,
),
'User' => array(
'name' => $name,
'email' => $email,
)
);
然而,这会导致mysql抛出错误,因为CakePHP尝试插入用户就好像它是新的一样,但电子邮件已经存在且应该是唯一的。
有没有办法做到这一点?或者我应该检查用户是否已经存在?
TIA。
答案 0 :(得分:3)
用户表中是否有'id'
字段?
如果是这样,这就是CakePHP将用来确定它是应该更新还是插入一行。
因此,您最好首先从User
进行查找,以便为要更新用户的数据播种,至少获取'id'
。如果您不提供'id'
CakePHP将尝试插入。