捣捣爸

捣捣爸

这家伙有点懒,还没写个性签名!

  • 财富值105
  • 威望值10
  • 总积分295

个人信息

  • 2019-06-05 已签到
    连续签到1天,获得了5个金钱
  • 2019-06-02 已签到
    连续签到1天,获得了5个金钱
  • 2019-05-31 已签到
    连续签到3天,获得了15个金钱
  • 2019-05-30 已签到
    连续签到2天,获得了10个金钱
  • 回复了 的回答

    重新赋值给一个变量,然后unset主键,然后重新实例化模型执行insert(变量)

    感谢您的回答

  • 回复了 的回答

    查看了一下框架的 源代码,yii 在插入一条新记录的时候,只插入了那些“脏”属性,为什么框架要这么设计,恐怕只能去问作者了,我觉得这里是 没有 这个必要的,直接插入全部的属性就是了,毕竟这是一个 insert 的操作,而不是 update (大家不妨在此 讨论下 作者设计成这样是出于 什么样的考虑)

    至于你的问题,随便弄弄就行了,代码都 很简单,不需要 解释什么吧
    1、

    $announce = Announce::findOne(7); 
    $announce->id = null;
    $announce->isNewRecord = true;
    $announce->content = "新的内容";
    $announce->insert();
    

    2、

    $announce = Announce::findOne(7); 
    $announce2 = new Announce;
    $announce2->attributes = $announce->attributes;        // 这里需要 rules 支持
    $announce2->content = "新的内容";
    $announce2->insert();
    

    3、

    $announce = Announce::findOne(7); 
    $announce->content = "新的内容";
    $announce->markAttributeDirty("title");       // 它不是要脏属性么,就标记给他 
    $announce->markAttributeDirty("...");        // 其它的字段
    $announce->insert();
    

    感谢您的回答

  • 回复了 的回答

    查看了一下框架的 源代码,yii 在插入一条新记录的时候,只插入了那些“脏”属性,为什么框架要这么设计,恐怕只能去问作者了,我觉得这里是 没有 这个必要的,直接插入全部的属性就是了,毕竟这是一个 insert 的操作,而不是 update (大家不妨在此 讨论下 作者设计成这样是出于 什么样的考虑)

    至于你的问题,随便弄弄就行了,代码都 很简单,不需要 解释什么吧
    1、

    $announce = Announce::findOne(7); 
    $announce->id = null;
    $announce->isNewRecord = true;
    $announce->content = "新的内容";
    $announce->insert();
    

    2、

    $announce = Announce::findOne(7); 
    $announce2 = new Announce;
    $announce2->attributes = $announce->attributes;        // 这里需要 rules 支持
    $announce2->content = "新的内容";
    $announce2->insert();
    

    3、

    $announce = Announce::findOne(7); 
    $announce->content = "新的内容";
    $announce->markAttributeDirty("title");       // 它不是要脏属性么,就标记给他 
    $announce->markAttributeDirty("...");        // 其它的字段
    $announce->insert();
    

    感谢您的回答

  • 赞了回答

    查看了一下框架的 源代码,yii 在插入一条新记录的时候,只插入了那些“脏”属性,为什么框架要这么设计,恐怕只能去问作者了,我觉得这里是 没有 这个必要的,直接插入全部的属性就是了,毕竟这是一个 insert 的操作,而不是 update (大家不妨在此 讨论下 作者设计成这样是出于 什么样的考虑)

    至于你的问题,随便弄弄就行了,代码都 很简单,不需要 解释什么吧
    1、

    $announce = Announce::findOne(7); 
    $announce->id = null;
    $announce->isNewRecord = true;
    $announce->content = "新的内容";
    $announce->insert();
    

    2、

    $announce = Announce::findOne(7); 
    $announce2 = new Announce;
    $announce2->attributes = $announce->attributes;        // 这里需要 rules 支持
    $announce2->content = "新的内容";
    $announce2->insert();
    

    3、

    $announce = Announce::findOne(7); 
    $announce->content = "新的内容";
    $announce->markAttributeDirty("title");       // 它不是要脏属性么,就标记给他 
    $announce->markAttributeDirty("...");        // 其它的字段
    $announce->insert();
    
  • 提出了问题
    复制数据库中的一项并插入
  • 2019-05-29 已签到
    连续签到1天,获得了5个金钱
见习主管 等级规则
295/500
资料完整度
30/100
用户活跃度
0/100

Ta的关注

0

Ta的粉丝

0

Ta的访客

2