thinkphp5.0 with预载入时,如果关联方法是多单词的驼峰写法,要用下划线获取

一句话:thinkphp5.0 with预载入时,如果关联方法是多单词的驼峰adminPosition,那么在获取数据时候要使用下划线风格即admin_position

1、`think\Db\Query`类`with`方法,把绑定关系绑定到模型的`option['with']`属性
2、`think\Db\Query`类`select`方法,方法内通过`resultSetToModelCollection`方法生成模型对象,模型对象再调用`eagerlyResultSet`方法做预载入处理
3、`eagerlyResultSet`这个方法在`think\model\concern\RelationShip`中定义,方法中通过`$this->$relation()`获取`BelongsTo`对象,然后再调用`BelongsTo`对象`eagerlyResultSet`方法,该方法在父类`OneToOne`定义,对于`in`查询它调用的是`BelongsTo`对象的`eagerlySet`方法
4、`eagerlySet`中通过`eagerlyWhere`获得关联数据对象,然后把对象信息封装在模型的`relation`数组属性中,数组的`name`是下划线风格的名称
5、在读取关联数据时路径是:先访问`model`的`__get`,最终访问`model`的`getData`方法。方法内会从模型的`relation`属性拿到关联数据
所以说对于`adminPosition`这样的关联方法,访问关联数据时要`admin_postion`访问

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值