1. tp 模型对象 查询数据
//一,获取一条数据
//1.传递闭包函数
/*$res = User::get(function($query){
$query->where('username','eq','user002')
->field('username,email');
});*/
//2.
/*$res = User::where('id',2)
->field("id,username")
->find();*/
//二,获取多条数据
//3.
/*$res = User::all("1,2,3");
//4.
//$res = User::all(function($query){
$query ->where('id','<',5)
->field('id,email');
});
foreach($res as $val){
dump($val->toArray());
}*/
//5.
/*$res = User::where('id','<',5)
->field('username,email')
->limit(2)
->order('id DESC')
->select();
foreach($res as $val){
dump($val->toArray());
}*/
//$res = $res->toArray();
//三,获取某个字段数据
//$res = User::where('id',10)->value('email');
//四,获取某一列字段数据
//$res = User;;column('email','username');
return $this->fetch();
二、 使用模型添加数据
//create()第二个参数,是允许插入的字段数组,(若设置为true,可以排除不能添加的字段)
/*$res = User::create([
'username' => 'user002',
'password' => md5('1234'),
'email' => '12345@email.com'
],true);*/
//使用userModel
//返回值为保存的对象
/*$userModel = new User;
$userMpdel->username = 'user021';
$userModel->email = '123456@email.com';
$userModel->save();
//或
//返回值为插入数据的行数
//allowField([字段1,字段2...]),允许插入的字段,,也可以设置true,过滤掉不需要的字段
//$userModel->allowField([字段1,字段2...])->save([
'username' => 'user021',
'email' = '132456@email.com'
]);
//
*/
//返回值为插入数据的对象数组
$userModel = new User;
$res = $userModel->saveAll([
['username'=>'user001'],
['username'=>'user002'],
['username'=>'user003']
]);
foreach($res as $val){
dump($val->toArray());
}
3. 使用模型更新数据
//update的参数中若存在主键,则更新主键为传递值的对象
//返回更新的对象
/*$res = User::update([
'id' => 1,
'username' => 'user003'
]);*/
/*$res = User::update([
'username' => 'user003'
],['id' => 1]);*/
//或 传递闭包函数
/*$res = User::update([
'username' => 'user003'
],function($query){
$query->where('id','LT',2);
});*/
//返回被更新的数据行数
/*$res = User::where('id','<',6)
->update([
'username' => 'user003'
]);*/
//返回被更新的数据行数
/*$userModel = User::get(1);
$userModel->username = '123';
$res = $userModel->save();*/
//save 传递第二参数,更新以第二个参数为条件的更新
//第二个参数 也可以设置为一个闭包函数
//返回值 为影响的行数
/*$userModel = new User;
$res = $userModel->save([
'email' => '123465@email.com'
],[
'id' => 4
]);*/
$userModel = new User;
//返回值 为影响的行数
$res = $userModel -> saveAll([
'id'=>1,'username'=>'user0002'
],
[
'id'=>2,'username'=>'user0003'
]);
dump($res);
4.使用模型删除数据
//返回被删除的行数
//1.直接传主键值
//2.传递数组如 ['id'=>2]
//3.传递闭包函数
/*$res = User::destroy(function($query){
$query->where('id','<',5);
});*/
/*$userModel = User::get(2);
$res = $userModel->delete();*/
$res = User::where('id','<',5)
->delete();
5.使用模型聚合操作
$res = User::count();
$res = User::where('id','>',10)->count();
$res = User::max('num');
$res = User::min('num');
$res = User::where('id','<',5)->max(num);
$res = User::sum(num);
$res = User::avg(num);
6. 模型获取器 --》 Model类中: get字段名Attr($val){}
$res = User::get(3);
//获取经过模型获取器后的数据
dump($res->sex);
$res->toArray();
//获取经过模型获取器后的数据
$res->getData();
7. 模型修改器 -》 Model类中: set字段名Attr($val){}
$auto 数据添加和更新都会进行操作 配合set字段名Attr($val){ return 操作; }
$insert 数据进行插入时进行操作 配合set字段名IndertAttr($val){ return 操作; }
$update 数据进行更新时发生操作 配合set字段名UpdateAttr($val){ return 操作; }
自动完成 -- 配合修改器使用
例如:
//先在model类内添加,需要自动完成字段数组
protected $auto = ['字段1','字段2'];
public function set字段1Attr(){
return 处理字段1();
}