2014-11-06 49 views
1

在我的控制器之一,我有以下几点:Laravel通过中间型号预先加载

return Lot::with(array('region', 'territory', 'manager')) -> get(); 

这完美的作品,并返回如下:

Array 
(
[0] => stdClass Object 
    (
     [id] => 1 
     [region_id] => 3 
     [territory_id] => 2 
     [state_id] => 5 
     [manager_id] => 2 
     [lot_num] => 0 
     [lot_type] => managed 
     [name] => Some Name 
     [address_1] => Some Address 
     [address_2] => 
     [address_3] => 
     [city] => Some City 
     [zip] => 00000 
     [opened_at] => 
     [deleted_at] => 
     [created_at] => 2014-11-06 00:49:39 
     [updated_at] => 2014-11-06 00:49:39 
     [region] => stdClass Object 
      (
       [id] => 3 
       [name] => Corporate 
       [deleted_at] => 
       [created_at] => 2014-11-06 00:49:39 
       [updated_at] => 2014-11-06 00:49:39 
      ) 

     [territory] => stdClass Object 
      (
       [id] => 2 
       [name] => Corporate 
       [deleted_at] => 
       [created_at] => 2014-11-06 00:49:39 
       [updated_at] => 2014-11-06 00:49:39 
      ) 

     [manager] => stdClass Object 
      (
       [id] => 2 
       [email] => [email protected] 
       [active] => 1 
       [last_login] => 
       [created_at] => 2014-11-06 00:49:39 
       [updated_at] => 
       [deleted_at] => 
      ) 

    ) 

) 

我的“经理”的方法该地块类有如下关系:

return $this -> belongsTo('User'); 

我的用户类别上有以下方法:

public function profile(){ 
    return $this -> hasOne('Profile'); 
} 

现在,终于我的问题:)是否有可能急于加载该用户通过预先加载,我在第一个代码剪断做我的很多课的个人资料?我想要做到的是有我的“经理”对象的回报是这个样子:

[manager] => stdClass Object 
      (
       [id] => 2 
       [email] => [email protected] 
       [active] => 1 
       [last_login] => 
       [created_at] => 2014-11-06 00:49:39 
       [updated_at] => 
       [deleted_at] => 
       [profile] => stdClass Object 
       (
        [id] => 5 
        [first_name] => Test 
        [last_name] => Tester 
        ... 
       ) 
      ) 

回答

6

使用“点”符号来eager load嵌套关系:

return Lot::with(array('region', 'territory', 'manager.profile'))->get(); 
+0

真棒...谢谢! – dxhans5 2014-11-06 17:50:30

+0

亿上传...谢谢Razor – dangel 2015-09-06 00:42:15