TP5 model的sql操作基本使用
1. 首先 需要在模块model文件夹里添加与你数据表一致的类文件,不需要写什么方法
2. 在控制器文件里建立userModel 方法,并引入model类文件,即可使用,与3.2版本不同的是,TP5有自带的操作方法直接就可以使用,不需要写太多的sql语句
User::get(1); 查询主键 id =1 的数据信息 echo $user->mobile; \ArrayAccess 接口,可以将对象像数组一样来访问 Users::get(['mobile'=>'13554784574','email'=>'511482696@qq.com']);不根据默认主键查询
User::getByName('123'); 根据条件查询 单个查询
User::All(); 全部查询 User::All(['id'=>'1']); 根据条件全部查
Users::where('mobile','13554784574')->find(); 也可以这样写
更新数据
save()方法 在查询出来的数据中进行更新 $user = User::get(1); $user->mobile = '987654321'; $user->save()
$users->isUpdate(false)->save();这个操作 是更新时 不更新主键值 (从百度问题上看到一些问题 在进行数据库操作时,每一次的操作都需要进行一次模型对象实例化 不然主键值也会改变,但是每次操作更新啥的操作 都要实例化一次模型类 , 那么 这个方法 确是有点鸡肋(个人看法),当然也看到一个大神给出的解决方案
- //假设主键为:id
- $affected = $model -> allowField(true)
- -> setAttr('id',null)
- -> isUpdate(false)
- -> save();
);没测试过!!
$res['mobile'] = '123456798'; User::update($res,['user_id'=>1]); 自己定义的的更新id = 1 的数据
插入操作
$res['name'] = '222';
$result = User::create($res); 单条插入 ==== $user = new User; $user->name="123"; $user->save();可以直接使用(字段不存在时 报错)
批量插入\
$list = [
['email' => 'zh', 'mobile' => '123789'],
['email' => '123.com', 'mobile' => '94321'],
] 或者$list = array(array('name'=>'qweqwe'),array('name'=>'hfks'));
$user->saveAll($list);
删除操作
$user = Users::get(23);
$user->delete();或者Users::destroy(23);