JD *_*cks 1 cakephp model cakephp-1.3
当我在MySQL数据库中保存(更新)字段时Model->save(),如果我没有为具有默认值设置的字段指定值,则将其重置为默认值.
即使已经存在该字段的值,这也是这样做的.
例如,考虑以下代码:
$existing_user = $this->CustomCart->User->field('id',array('User.email'=>$this->data['User']['email']));
if($existing_user)
{
//update information
$this->CustomCart->User->id = $existing_user;
}
$this->CustomCart->User->save($this->data);
Run Code Online (Sandbox Code Playgroud)
在此代码中,它会检查用户是否已存在传递的电子邮件地址.如果是,请使用传递的信息更新该用户,否则创建新用户.
但是我在users表中有一个字段叫做role默认值customer
没有设置值role,$this->data因此在创建新用户时,role会自动设置为customer.
但是,在更新现有用户时,即使他们还有像" admin " 这样的角色,它仍会将值重置为customer.
我不知道为什么会这样.我没有专门设置的其他字段(没有默认值)保持其值.那么为什么默认值的字段会被重置?
我拿到了这个!你需要在保存之前设置它:
$this->CustomCart->User->create(false);
Run Code Online (Sandbox Code Playgroud)
没有假蛋糕不知何故猜测模型应该是什么样子.
| 归档时间: |
|
| 查看次数: |
2189 次 |
| 最近记录: |