1、模型的定义
//在控制台中输入如下代码
php think make::mode 模块名(首字母大写)
//指定主键
protected $pk = 'id';
//指定数据表
protected $table = 'tp_user' //此次需要写完整表名
//实例化model的两种方式
//例如实例化student.php模块,假设此模块存在于common文件夹
use app\common\model\student;
$model = new student();
或
$model = model('student');
2、添加数据
假设存在一个student.php的model,以下操作均基于该model
//添加一条数据
//假设接受到一个$data的数据
$data = array(
'id' => 1,
'name' => '小明',
'age' => 22,
);
//方法1:
$model = new student();
$model -> save($data);
//使用allowField函数可以控制存入的字段
$mode -> allowField(['id','name']) -> save($data); //只存入id和name
//方法2:
student::creat($data);
//添加多条数据
$data = [
['id' => 1,'name' => 'xioaming','age' => 18];
['id' => 2,'name' => 'xioawang','age' => 19];
['id' => 3,'name' => 'xioagang','age' => 20];
]
$model -> saveAll($data);
3、修改数据
使用格式为student::where('条件') -> updata(‘数据’)
例如:
$data = ['id' => 1,'name' => 'xiaoming','age' => 18]
student::where('id','=','1') -> updata($data);
4、删除数据
//方法1
$man = student::find(1);
$man -> destory();
//方法2
student::destory([1,2,3]);
5、软删除
概念见上篇文章
class Student extend Model{
use SoftDelete;
//指定软删除标记字段
protected $deleteTime = 'delete_time';
}
//软删除
Student::destory(1);
//真删除
Student::destory(1,true);
//查询时包含被软删除的数据
Student::withTrashed() -> find();
Student::withTrashed() -> select();
//查询只有被软删除的数据
Student::onlyTrashed() -> find();
Student::onlyTrashed() -> select();
//恢复软删除的数据
$man = Student::onlyTrashed -> find(2333);
$man -> restore();
6、查询数据
//查询单条记录
Student::where('name','xiaoming') -> find();
//查询多条记录
Student::where('id','>',3) -> limit(3) -> order('id','desc') -> select();
//获取某个字段的值
Student::where('id',1) -> value('name');
//获取某个列的值
Student::where('id','>',1) -> column('name');
//条件分组
$result = Student::where(function(Query $query){
$query -> where('id','>',100);
}) -> whereOr(function(Query $query){
$query -> where('age','>',18);
}) -> select();
//动态查询
//也就是把字段写在方法之中
$result = Student::getById(1);
//获取器(对数据进行自动处理)写在model类中
//例如将student表中的name转为大写
public function getNameAttr($value){
return strtoupper($value);
}