迭代操作 可以对数据进行迭代操作 ~~~ $select=Good::select("g.*")->order("rank desc"); $select->each(function(Good $good ){ $good->loadTags(); $good->loadSku(); $good->loadClick(); }); $data=$select->toArray('id,title')->cache()->page($page,$step); ~~~ 子类型也支持迭代操作 下面是在数据结果集合里挑选字段为 r_ 开头的数据转化为OrderRefunds对象设置到refunds字段,同时进行迭代 下面的可以仔细读下 ~~~ $select=DB::select(OrderRefunds::table('o_r')) ->fields("*",'o') ->fields(OrderRefunds::fields(),'o_r','r') ->join(Order::table('o'),'o.id=o_r.order_id'); $data=$select->setRecord(Order::class) ->setSubRecord('refunds','r',OrderRefunds::class, function(OrderRefunds $refunds){ $refunds->moneyShow(); }) ->each(function(Order $order){ $order->loadGoods(); $order->renderConst(); $order->moneyShow(); })->toArray('id,title') ->page($page,$step) ~~~ 上面同时演示了 结果转数组和二级缓存的使用 同时说明下 OrderRefunds::table('o_r') 返回 o_r 的表名 OrderRefunds::fields() 返回所有的字段 ->fields(OrderRefunds::fields(),'o_r','r') 去o_r 中的字段 并添加上前缀r_