2015-01-18 4 views
0

У меня есть две модели Eloquent, которые находятся в отношениях друг к другу: A mission имеет один vehicle, а vehicle принадлежит к одному mission.Почему мой простой запрос laravel возвращает рекурсию?

Я настроил отношения в обеих моих моделях следующим образом:

class Vehicle extends Eloquent { 
    public function mission() { 
     return $this->belongsTo('Mission'); 
    } 
} 

class Mission extends Eloquent { 
    public function vehicle() { 
     return $this->hasOne('Vehicle'); 
    } 
} 

Я пытаюсь захватить всю миссию & ряда транспортных средств на основе названия автомобиля:

 $results = Mission::with('vehicle')->whereHas('vehicle', function($q) { 
      $q->where('name','Falcon 9 v1.0'); 
    }); 

Я бы ожидал, что это сработает, но это не так, и, кроме того, возвращает рекурсивный объект Eloquent\Builder, который разбивает мой браузер. Почему это?

ответ

3

Вы должны вызвать get, чтобы получить результат:

$results = Mission::with('vehicle')->whereHas('vehicle', function($q) { 
    $q->where('name','Falcon 9 v1.0'); 
})->get(); 
Смежные вопросы