关联查询 joinWith('abc') 与 ->abc 的区别? [ 2.0 版本 ]
class OrderModel extend ActiveRecord
{
public function getAbc()
{
return $this->has(AbcModel::className(),['orderId'=>'orderId']);
}
}
例如1:
$r = OrderModel::find()->joinWith('abc')->where(['{{%orders}}.orderId'=>1])->one();
$r->abc
例如2:
$r = OrderModel::find()->where(['orderId'=>1])->one();
$r->abc
例1和例2有区别么?
灰太狼 补充于 2019-04-18 16:16
我觉得这两个使用的结果都是一样的。
区别:
例子1如果 joinWith([多个])
会把多个关联查询出来然后全部缓存起来。(如果有不用的一些关联查询,会浪费效率去查询在缓存)
例子2 ->关联对象
, 是在使用的时候才去查询然后再缓存。(使用哪个关联才去调用查询并缓存)
我是这样认为的。对么?
上面保留证据,好像理解错了。
共 0 个回答
没有找到数据。
灰太狼
注册时间:2016-11-19
最后登录:2023-07-14
在线时长:76小时17分
最后登录:2023-07-14
在线时长:76小时17分
- 粉丝28
- 金钱3290
- 威望150
- 积分5550