dongxixiu9134 2011-11-21 07:29
浏览 105
已采纳

Yii isNewRecord在之前是假的吗?

I made a beforeSave method in my model (extends GXActiveRecord), the if isNewRecord never gets triggered. My beforeSave() gets called, though.

When I print the $this->isNewRecord variable, it's false. When is this variable set to false anyway? I'm very sure it's new

public function beforeSave(){


        if(parent::beforeSave())
            {
              if($this->isNewRecord){
                    $this->setAttribute('doc_status','new');
                    print "something";
              }else{
                  $this->setAttribute('doc_status','updated');
              }
            return  true;
            }  else { return false;

    }
  • 写回答

3条回答 默认 最新

  • dtgj8529 2011-11-21 08:26
    关注

    CActiveRecord->isNewRecord is false if you've never saved it before.

    E.g.

    $model = new Product;
    $model->name = uniqid("bar");
    echo "isNewRecord?".$model->isNewRecord; // 1 (true)
    $model->save();
    echo "isNewRecord?".$model->isNewRecord; // (false)
    
    $model = Product::model();
    $model->name = uniqid("foo");
    echo "isNewRecord?".$model->isNewRecord; // (false)
    $model->save();
    echo "isNewRecord?".$model->isNewRecord; // (false)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000
  • ¥30 ppOCRLabel导出识别结果失败
  • ¥15 Centos7 / PETGEM