2015-12-24 17:31:29 4366次浏览 0条回答 0 悬赏 50 金钱
$my = My::model()->findByPk(1);
$my -> name = 'wsssd';//最大长度为3   此时不会成功
$my->save();exit;

我们简单模拟下,name字段是varchar,最大长度为3
这个时候运行,界面是空白页
如果换成$my->update();运行报异常CDbException

按理说save()里面就是会运行update()的啊 为什么结果不一样呢???

解决了:

public function save($runValidation=true,$attributes=null)
{
    if(!$runValidation || $this->validate($attributes))
        return $this->getIsNewRecord() ? $this->insert($attributes) : $this->update($attributes);
    else
        return false;
}

save源码里有$this->validate($attributes)验证,没有通过验证,update就不会运行

    没有找到数据。
您需要登录后才可以回答。登录 | 立即注册
xyf90314
副总裁

xyf90314

注册时间:2015-03-04
最后登录:2023-03-13
在线时长:95小时23分
  • 粉丝21
  • 金钱5257
  • 威望40
  • 积分6607

热门问题