为什么我的简单laravel查询返回递归?

时间:2015-01-18 00:27:49

标签: php mysql laravel recursion eloquent

我有两个一对一关系的Eloquent模型:mission有一个vehiclevehicle属于一个mission

我在两个模型中建立了如下关系:

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对象,它会导致我的浏览器崩溃。这是为什么?

1 个答案:

答案 0 :(得分:3)

您必须致电get才能获得结果:

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