hyperf 的数据库模型的使用说明, 官网传送门 首先要 composer 安装 hyperf/db-connection (如果已经安装可以忽略) 然后, 在 app/autoload/databases.php 的配置文件中作相应的配置, 如果要使用env文件的, 就在env 文件中配置相应的项就可以了
同时, 数据的库配文件中还支付 读写分离的配置, 可以对参考官网 配置好后, 我们来看一下它的使用过程
- 生成数据表模型,如图, 我们在 sqlyog建了一个数据表 h_user , 我们在配置表前缀的时候已经配置prefix = h_
使用命令行工具, 自动生成相当的模型 php bin/hyperf.php gen:model user 这里的表名不用加表前缀 h_ 完成命令后, 在 app\Model下就会生成一个 User.php
此时我们就可以在程序的 controller 或者 service 中 使用 User::where(…)->get(); 等方法查询,更改数据表了
这里有一点很重要, 不要用依赖注入的方式来调用 User 的model 对象, 因为依赖注入的是一个长生命周期的对象, 也就是说如果这样干了, User的这个对象就是在内存中常驻的了, 可能你第一次查询的时候结果是正确的, 当第二个,第三个请求来查询时, 其是得到的是一个被污染的对象
下面给出一个错误的样例, 这时网上其它人的案例我们了解一下
所以, 我们就记住结论就可以了, 不要试图在依赖注入中引入 Model 对象
为了使代码更有逼格一点, 我们可以再做一个 dao 层, 也就是 数据访问层, (data access object), 由dao 来操作 user model
在控制器中使用 以上就是模型的基本用法
更多的用法, 可以参照 laravel-orm 的使用方法, hyperf 使用的就是 laravel-orm 稍做了一些修改,大体用法都是一样的, 看一下文档就会用了
|