ThinkPHP6模型批量保存SaveAll()方法,亲测可用,超详细代码

 日常难题记录:tp6 中的saveAll()的使用方法
控制器代码:

$Lay =new OddlayModel;
        $res=$Lay->saveAll(input('post.'));//使用函数助手input('post.')//一次传过来好多input表单值 
        return json_ok($res);//return $res数据

API测试方式:

 ThinkPHP6模型批量保存SaveAll()方法,亲测可用,超详细代码_第1张图片

 当我们使用前端提交时,报500的错。查看具体时,错误代码为:

Argument 1 passed to think\Model::setAttr() must be of the type string, intXXXX

苦思冥想,前端不能用这批量写了也没用。。。。。

直到在后来在看文章时看到有个大佬时这样写的,给了我启发:

ThinkPHP6模型批量保存SaveAll()方法,亲测可用,超详细代码_第2张图片

 虽然报的错不一样,但是我们也可以直接强制把前端传过来的数据强制转换为数组(虽然我们接收的就是数组,强制转换最保险)

所以,我们把代码改进一下:

        $Lay =new OddlayModel;//使用函数助手input('post.')//一次传过来好多input表单值 //接收数组,但是前端传过来报500错
        $res=$Lay->saveAll(input('post.res/a'));//res/a强制转换数组前端正常传
        return json_ok($res);//return $res数据

APIpost工具提交的格式也相应改一下,如下的格式:

ThinkPHP6模型批量保存SaveAll()方法,亲测可用,超详细代码_第3张图片

然后前端测试提交数组,成功提交到数据库,到此可以愈快下班回家干饭了;

最后贴一下控制器的完整代码:

saveAll(input('post.res/a'));//res/a强制转换数组前端正常传
        return json_ok($res);//return $res数据
        //返回数组
        // dump($res);
    }
}

不是专业做这个的,有说的错误之处,勿喷~

只是记录自己一个小白遇到的难点和解决方法

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43915164/article/details/127558402
 

 

你可能感兴趣的:(ThinkPHP6,后端,前端,开发语言,php,后端,测试工具)