2014-11-06 37 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