tp5同一个实例里面多次新增数据

博客围绕ThinkPHP5实例添加数据展开,官网给出的同一实例多次新增数据方法实测不可行,作者测试出一种可行方式,通过判断请求是否为POST,验证数据,再使用模型保存数据,若成功保存则处理关联数据。

官网给出的方法是

注意不要在同一个实例里面多次新增数据,如果确实需要多次新增,那么可以用下面的方式:

$user = new User;

$user->name = 'thinkphp';

$user->email = 'thinkphp@qq.com';

$user->save();

$user->name = 'onethink';

$user->email = 'onethink@qq.com';// 第二次开始必须使用下面的方式新增

$user->isUpdate(false)->save();

 

实测不行,

不过测试下面这种方式可行:

if ($this->request->isPost()) {

            $data            = $this->request->param();

            $validate_result = $this->validate($data, 'Project');

            if ($validate_result !== true) {

                $this->error($validate_result);

            } else {

                if ($this->model_model->allowField(true)->save($data)) {

                 $pid = $this->model_model->id;

                 foreach ($data['pro_date'] as $k=>$v){

                      $v['pid'] = $pid;

                     $this->model_model_dates->data($v,true)->isUpdate(false)->allowField(true)->save();

                      $pdid = $this->model_model_dates->id;

                      foreach ($v['pro_times'] as $kk=>$vv){

                               $vv['pdid'] = $pdid;

                          $this->model_model_times->data($vv,true)->isUpdate(false)->allowField(true)->save();

                      }

                 }

                    $this->success('保存成功');

                } else {

                    $this->error('保存失败');

                }

            }

        }

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值