原因:
在做中控系统中遇到了一个给用户批量分配角色的问题,刚开始想到的是循环插入,但立马给否定了,循环操作数据库开发者的大忌啊,于是查找手册找到数据写入看到批量操作:addAll(),测试成功,以为万事大吉了,但当第二次操作时提示失败,找原因,原来是数据库中已经存在的数据addAll()没有覆盖导致了错误
解决方法:
查找Thinkphp源码翻到Library/Think/Model.class.php找到了addAll方法:public function addAll($dataList,$options=array(),$replace=false)于是秒懂了,replace肯定是问你是否覆盖已经存在的数据,于是修改我的addAll方法为:$user->addAll($data,array(),true):再次测试问题解决。
深入解析thinkphp中的addAll方法
时间: 2024-09-30 00:45:23