## 主要采取关键字有: > get > find > all > getBy字段名 > chunk > value > column > Loader ## 获取表中单条记录:get方法 ~~~ 取出主键为1的数据 $user = User::get(1); echo $user->name; // 使用数组查询 $user = User::get(['name' => 'thinkphp']); // 使用闭包查询 $user = User::get(function($query){ $query->where('name', 'thinkphp'); }); echo $user->name; ~~~ ## Model对象查询单条记录:find方法 ~~~ $user = new User(); // 查询单个数据 $user->where('name', 'thinkphp') ->find(); ~~~ ## 取出多个数据:all静态方法 ~~~ // 根据主键获取多个数据 $list = User::all('1,2,3'); // 或者使用数组 $list = User::all([1,2,3]); foreach($list as $key=>$user){ echo $user->name; } // 使用数组查询 $list = User::all(['status'=>1]); // 使用闭包查询 $list = User::all(function($query){ $query->where('status', 1)->limit(3)->order('id', 'asc'); }); foreach($list as $key=>$user){ echo $user->name; } ~~~ ## 动态查询 根据字段名动态查询:getBy字段名( ) ~~~ // 根据name字段查询用户 $user = User::getByName('thinkphp'); // 根据email字段查询用户 $user = User::getByEmail('thinkphp@qq.com'); ~~~ ## 通过Query类查询 ~~~ User::where('id','>',10)->select(); User::where('name','thinkphp')->find(); ~~~ ## 数据分批处理 ~~~ User::chunk(100,function($users){ foreach($users as $user){ // 处理user模型对象 } }); ~~~ ## 获取字段值:value( ) ~~~ // 获取某个用户的积分 User::where('id',10)->value('score'); //模型静态调用【模型查询方法】 User::get(1)->getData('name'); ~~~ ## 获取单列或多列字段值:column( ) ~~~ // 获取某个列的所有值 User::where('status',1)->column('name'); // 以id为索引 User::where('status',1)->column('name','id'); ~~~ ## 加载器Loader类中查询 ~~~ 利用Loader类model静态方法自动加载自定义模型并实例化,得到模型对象。 $data = Loader::model('User') //加载模型类并创建模型对象 ->where('id = 1') //设置查询条件 ->find(); //获取查询结果 利用Loader类db静态方法自动数据库类并创建连接对象。 $data = Loader::db() //加载数据库类并创建连接对象 ->table('tp5_user') //设置当前数据表 ->where('id = 1') //设置查询条件 ->find(); //获取查询结果 利用Loader类model静态方法得到模型对象后,不调用数据库方法,而是直接调用模型方法来完成查询。 //创建查询闭包函数 $closure = function ($query){ //闭包匿名函数 $query -> where('id = 1'); //设置查询条件 }; //获取满足条件的单个记录:返回一个数据对象 $data = Loader::model('User')->get($closure); ~~~