🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
> ## 在控制器中调用模型进行添加数据 ### 1. 添加一条数据《save方法新增数据返回的是写入的记录数。》 ```php // 注意不要在同一个实例里面多次新增数据,如果实在需要,第二次开始必须使用下面的方式新增 $user->isUpdate(false)->save(); // 使用model助手函数可以快速实例化一个单例的模型对象,不需要特意引入模型类 $user = model('User'); // 1.如果为少量字段直接赋值 $user = new User; $user->name = 'thinkphp'; $user->save(); // 2. 如果为多个字段支持传入数组 $user = new User; $user->data([ 'name' => 'thinkphp', 'email' => 'thinkphp@qq.com' ]); $user->save(); // 还可以直接在实例化的时候传入(这种简单) $user = new User([ 'name' => 'thinkphp', 'email' => 'thinkphp@qq.com' ]); $user->save(); // 3. 插入前过滤非数据表字段 user = new User($_POST); $user->allowField(true)->save(); // 4. 限制指定字段可以插入 $user = new User($_POST); $user->allowField(['name','email'])->save(); ``` ### 2. 添加多条数据《saveAll方法新增数据返回的是包含自增id的数据集。》 ``` // saveAll方法会自动判断更新还是新增,当数据包含主键时会被认为更新,当不包括主键时被认为是新增 $user = new User; $list = [ ['name'=>'thinkphp','email'=>'thinkphp@qq.com'], ['name'=>'onethink','email'=>'onethink@qq.com'] ]; $user->saveAll($list); // 强制插入非更新,那么 $user = new User; $list = [ ['id'=>1, 'name'=>'thinkphp', 'email'=>'thinkphp@qq.com'], ['id'=>2, 'name'=>'onethink', 'email'=>'onethink@qq.com'], ]; $user->saveAll($list, false); ``` ### 3. 使用静态方法添加数据(create方法返回的是当前模型的对象实例。) ```php $user = User::create([ 'name' => 'thinkphp', 'email' => 'thinkphp@qq.com' ]); echo $user->name; echo $user->email; echo $user->id; // 获取自增ID ``` > ## 在模型中获取自增的主键id ```php $user = new User; $user->name = 'thinkphp'; $user->save(); // 获取自增ID echo $user->id; // 如果表中的字段不是id,而是user_id,那么 echo $user->user_id; ```