ThinkPHP5中新增的方法

来源:互联网 发布:迪马利亚在巴黎数据 编辑:程序博客网 时间:2024/06/05 05:49

tp5 中 model 的新增方法

复制代码
//默认主键为自动识别,如果需要指定,可以设置属性:namespace app\index\model;use think\Model;class User extends Model{    protected $pk = 'uid';    // 设置当前模型对应的完整数据表名称    protected $table = 'think_user';}
复制代码

使用助手函数model()快速实例化模型(推荐)

复制代码
 public function save(){        $user = model('User');  // 使用model 即可快速实例化模型,不必使用 $user = new User();        $list = [            ['name'=>'thinkphp','email'=>'thinkphp@qq.com']        ];        $user->saveAll($list);    }
复制代码

 

 save()方法添加单条数据

复制代码
//使用data方法批量添加数据:namespace app\index\controller;use think\Controller;use think\Request;use app\index\model\User as UserModel;
public function save(){$user = new UserModel;$user->data([ 'name' => 'thinkphp', 'email' => 'thinkphp@qq.com']);$count = $user->save();  
dump($count)  
// save方法新增数据返回的是写入的记录数
}

复制代码
复制代码
// 使用allowField过滤非数据表字段public function save(Request $request){        $user = new UserModel();        // $_POST过来的数据中包含数据表中没有的字段        $user->data($request->param());    // 或者$_POST       // 只会保存数据表中有的字段        $user->allowField(true)->save();    }    
复制代码
复制代码
// 希望某些指定字段写入    public function save(Request $request){        $user = new UserModel();        $user->data($request->param());           // 只写入name字段和email字段的值        $count = $user->allowField(['name','email'])->save();        dump($count);die;    }
复制代码
复制代码
// 获取自增id    public function save(Request $request){        $user = new UserModel();        $user->data($request->param());           $user->allowField(true)->save();        echo $user -> id;    // 输出当前插入数据的主键    }
复制代码
复制代码
   //如果同一个实例里面多次新增数据,必须使用isUpdate(false) public function save(Request $request){        $user = new UserModel();        $user->data($request->param());        $user->allowField(['name'])->save();    // 插入第一条数据        $user->name='thinkphp';        $user->email='thinkphp@qq.com';        $user->allowField(['email'])->isUpdate(false)->save(); // 再次插入一条数据    }
复制代码

 saveAll()方法添加多条数据

复制代码
// saveAll()同时添加多条数据    public function save(Request $request){        $user = new UserModel();        $list = [            ['name'=>'thinkphp','email'=>'thinkphp@qq.com'],            ['name'=>'chrdai','email'=>'chrdai@qq.com']        ];       $user->saveAll($list);    }
复制代码
复制代码
// saveAll()方法中若数据中带有主键,则为更新操作,若不带主键则为插入操作    public function save(Request $request){        $user = new UserModel();        $list = [    // 此处的两条数据将执行更新操作            ['id'=>1,'name'=>'thinkphp_update','email'=>'thinkphp@qq.com'],            ['id'=>2,'name'=>'chrdai_update','email'=>'chrdai@qq.com']        ];       $user->saveAll($list);    }
复制代码

静态调用create方法创建并写入

复制代码
// 使用create方法可以直接将数据插入到数据库 public function save(Request $request){        $user = UserModel::create([            'name'=>'thinkphp',    // 此处的字段必须是数据表中存在的            'email'=>'thinkphp@qq.com'        ]);        echo $user->id; // 获取当前插入数据的id    }
复制代码

 

原创粉丝点击