2013-06-14 4 views
2

Я пытаюсь получить активную загрузку, работая при выборе связанных моделей.Яркая нагрузка Laravel Eloquent related model

public function allCompanies() { 
    $companies = $this->companies()->active()->get(); 
    $companies->load('Industry'); 
    return $companies; 
} 

У меня есть эта функция на модели промышленности, и я считаю, что это должно принести компании, которые находятся в пределах текущей индустрии, он также должен принести связанную промышленность для компаний (это будет текущая запись)

Это, похоже, не работает, когда я перебираю компании, которые перерабатывают промышленность для каждого из них.

Я делаю что-то неправильно с линией $companies->load('Industry');?

Благодаря

ответ

5

Try:

public function allCompanies() { 
    $companies = $this->companies()->active()->with('industry')->get(); 
    return $companies; 
} 

с() и нагрузки() функции ссылается функция в модели не сама модель, а именно:

class Company extends Eloquent { 

    public function industry() 
    { 
     return $this->belongsTo('Industry'); 
    } 
} 
class Industry extends Eloquent { 

     public function companies() 
     { 
      return $this->hasMany('Company'); 
     } 
} 

Обращайтесь к http://laravel.com/docs/eloquent#eager-loading

+0

Спасибо. Я мог бы поклясться, что попробовал этот вариант, но, видимо, я этого не сделал! Можно ли загружать связанную модель, где у компании есть много из них, а не только одна? – ArthurGuy

+0

Да, если связь установлена ​​правильно, она вернет коллекцию. –

Смежные вопросы