总结
在控制器中 模型操作
get() 和 all() 只能单独使用来查询数据
想要链式操作查询数据 需要使用find() 和select() 这里返回的都是对象集
2017-12-04
另外补充一点,很多人都问 是使用db类还是model 类。
这个其实没有明确的限定。tp5官网推荐使用model。
我接触了tp5也将近一年了。大多时间使用的还是model类 ,tp5提供的很多方法都是需要model类 来使用的,比如with 模型关联,获取器 等等 比较方便的方法,
而Db类 则针对于 使用比较单一的地方,。比如 获取配置表中的数据 ,不需要复杂的功能 只是单纯的查询数据,相对于来说使用db类比较好。不需要新建模型文件,直接查询即可。
还有就是关于DB和model的使用 速度的问题.Db是直接操作sql语句 速度肯定是比model快 但是 相对于model提供的各种方便的功能来说,牺牲一点运行速度是值得的, 而且 使用model带来的速度影响是在接受范围内的
更新时间 2017-07-22
准备工作 创建User控制器 User模型 User数据表
在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
2017-07-18 假如有个Order模型 ,在尝试使用时有以下结果
使用 self::get();
获取数据时正确的
self::with('user')->get()
这里会提示 method not exist:think\db\Query->get
只有单独get 时才会是正确的 ,不能够加入其他语句条件
发布时间 : 2023-02-28,阅读量:1331