javalzbin

javalzbin

多看,多想,多动手。

  • 财富值6926
  • 威望值150
  • 总积分8796

个人信息

  • 2016-03-17 已签到
    连续签到24天,获得了20个金钱
  • 2016-03-16 已签到
    连续签到23天,获得了20个金钱
  • $count = (new \yii\db\Query())
        ->from('user')
        ->where(['last_name' => 'Smith'])
        ->count();
    

    如果没有条件,把where去掉

  • 2016-03-15 已签到
    连续签到22天,获得了20个金钱
  • 连接拒绝,你不会是本地环境连接到阿里云吧?

  • 2016-03-14 已签到
    连续签到21天,获得了20个金钱
  • 2016-03-13 已签到
    连续签到20天,获得了20个金钱
  • 2016-03-12 已签到
    连续签到19天,获得了20个金钱
  • 2016-03-11 已签到
    连续签到18天,获得了20个金钱
  • 回复了 的回答

    为了实现贪婪加载。

    // 查找所有订单并以客户 ID 和订单 ID 排序,并贪婪加载 "customer" 表
    $orders = Order::find()->joinWith('customer')->orderBy('customer.id, order.id')->all();
    

    文档上有说明 :http://www.yiichina.com/doc/guide/2.0/db-active-record
    这里有对joinWith的说明,也有对贪婪加载的说明


    为提高程序执行效率而提供的一种机制,即只有真正使用该对象的数据时才会创建。他节省了服务器的内存开销,从而提高了服务器的性能。
    如果你明确了解自己要查询的数据是需要立即加载的,那你就关闭贪婪加载,他这个设计是为了有些时候,关联的数据你未必就需要用到,而真正使用到的时候,再去查询。

    ps: 以上是我个人理解,不敢说理解一定是对的,仅供参考。因为我觉得这个设计跟java中hibernate的延迟加载应该是一个意思。
    至于为什么要这么设计,估计作者才清楚,或者说真正对这个功能有体会的人才比较明白他的好处。

副总裁 等级规则
8796/10000
资料完整度
40/100
用户活跃度
0/100

Ta的关注

0

Ta的粉丝

6

Ta的访客

20