ThinkPHP的远程一对一或者一对多关联
ThinkPHP的开发文档说的比较模糊
hasOneThrough(‘关联模型’, ‘中间模型’, ‘外键’, ‘中间表关联键’,’当前模型主键’,’中间模型主键’);
- 关联模型(必须):关联模型类名
- 中间模型(必须):中间模型类名
- 外键:默认的外键名规则是当前模型名+_id
- 中间表关联键:默认的中间表关联键名的规则是中间模型名+_id
- 前模型主键:一般会自动获取也可以指定传入
- 间模型主键:一般会自动获取也可以指定传入
我们以实际开发过程中来举例
- BuffetModel
自助订单表,记录了桌号,订单类型,订单状态等信息 - OrderModel
系统订单表,记录 金额,支付状态等信息 - OrderExtBuffet
系统订单自助扩展表,也就是第三方关联表,通过order_id(系统订单) buffer_order_id(自助订单)来确定关联关系
其中BuffetModel可能会包含一个或者多个系统订单,如中途加人等.这时候我们可以在BuffetModel远程一对多关联OrderModel,在查询的时候处理多个订单信息
1 | class BuffetOrderModel extends Model{ |