Thinkphp5 模型类和Db类的使用区别
使用总结
在控制器中模型操作
get() 和 all()只能单独使用来查询数据
想要链式操作查询数据 需要使用find() 和select() 这里返回的都是对象集
在User控制器中
- use app\console\model\User as UserModel;
- $user = UserModel::all();
- dump($user);
- exit();
- '这里会输出数据对象集 表示可用
- $user = UserModel::select();
- dump($user);
- exit();
-
- '输出的也是数据对象集
- $user = UserModel::get();
- dump($user);
- exit();
- '这里返回到是ID为1用户
- '尝试把ID为1的用户删除掉 返回的是ID为2的数据
- '所以这里直接使用get()不带参数 会返回一个根据ID正序排列的第一个数据对象
- $user = UserModel::find();
- dump($user);
- exit();
- '使用find() 和使用 get() 是一样的用法 单纯使用时
- $user = UserModel::where('id',5)->get();
- dump($user);
- exit();
-
- '这里会报错
- '[ error ] method not exist:think\db\Query->get
- $user = UserModel::where('id',5)->find();
- dump($user);
- exit();
- '返回用户ID为5的对象 如果查找的用户数据不存在会返回null
- $user = UserModel::where('id',5)->select();
- dump($user);
- exit();
-
- '返回对象集
- $user = UserModel::where('id',5)->all();
- dump($user);
- exit();
- '报错 method not exist:think\db\Query->all
假如有个Order模型 ,在尝试使用时有以下结果
- 使用 self::get();
-
- '获取数据时正确的
- self::with('user')->get()
- '这里会提示 method not exist:think\db\Query->get
-
- '只有单独get 时才会是正确的 ,不能够加入其他语句条件
解压密码: detechn或detechn.com
免责声明
本站所有资源出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。
本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户自行鉴别,做一个有主见和判断力的用户。
本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。