如何调用一个表的查询方法
如何调用一个表的查询方法
table
- table是继承于model类,在项目中充当着表映射的角色,项目中已经不存在完整体系的mvc,所以对于model来说就改了其中的用法。
必要的三个信息
- $_table 必须要指定表名
$_primaryKey 必须要指定表主键
$_casts必须要指定所有的字段类型
支持的类型定义
- integer
- float
- double
- string
- boolean
- object
- array
- collection
- date
- datetime
- timestamp
2 . Repository
写数据仓库管理员
截图中有引用进来course的table,如果按照之前的做法,指定是用单例模式,这里用的是new,不要疑惑,后面你会得到你想要的答案。为什么用new 而不用单例。
写你想要实现的方法
3 . service
- 写单个service,这里的service和之前的thinkphp里用到的service不太一样,thinkphp里面是模块化,模块后有服务,而lumen中是容器做支持,本身就是对外提供服务,而服务化后是数据仓库管理员,而对于service来说这里更多的充当了之前的module的角色,而Repository充当了之前的service的角色,只能是牵强这么解释,其实实质上还是不同的。
而这里的service提供的是一个类型的服务,所以他更多是也许是多个Repository的集成,和逻辑的内部封装。而Repository也是依赖注入进来的。也无需NEW
4 . provider的注册(实例化翻转)
其实这里注册provider的时候有好几种的方式,目前项目中的注册方式统一使用单例模式的注册机制进行返回,回想一下,前面的时候有说用new的问题,原因就在此, 如果按照项目中的这种注册方式的话,而且都按照开发规范来做的话,最外层调用的时候是永远只会有一个实例的,因为在Provider注册的时候已经把口锁住了。所以里面的调用不会new多次
之后在bootstrap的app.php注册容器
5.facades(外观)
- facades静态实例化调用,屌不屌…..,固定的方法,返回的字符串是provider中注册的单例的名称
6.调用