获取单个数据
获取单个数据的方法包括:
取出主键为1的数据
$user = UserModel::get(1);
echo $user->user_nickname;
// 使用数组查询
$user = UserModel::get(['user_nickname' => '老猫']);
// 使用闭包查询
$user = UserModel::get(function($query){
$query->where('user_nickname', 'thinkphp');
});
echo $user->user_nickname;
如果你是在模型内部,请不要使用$this->user_nickname的方式来获取数据,请使用$this->getAttr('user_nickname') 替代。或者在实例化模型后调用查询方法
$user = new UserModel();
// 查询单个数据
$user->where('user_nickname', '老猫')
->find();
get或者find方法返回的是当前模型的对象实例,可以使用模型的方法。
获取多个数据
取出多个数据:
// 根据主键获取多个数据
$users = UserModel::all('1,2,3');
// 或者使用数组
$users = UserModel::all([1,2,3]);
foreach($users as $key=>$user){
echo $user->user_nickname;
}
// 使用数组查询
$users = UserModel::all(['user_status'=>1]);
// 使用闭包查询
$users = UserModel::all(function($query){
$query->where('user_status', 1)->limit(3)->order('id', 'asc');
});
foreach($users as $key=>$user){
echo $user->name;
}
数组方式和闭包方式的数据查询的区别在于,数组方式只能定义查询条件,闭包方式可以支持更多的连贯操作,包括排序、数量限制等。或者在实例化模型后调用查询方法
$user = new UserModel();
// 查询数据集
$user->where('user_nickname', '老猫')
->limit(10)
->order('id', 'desc')
->select();
模型的all方法或者select方法返回的是一个包含模型对象的二维数组或者数据集对象。