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

I have two Eloquent models which are in a one to one relationship: A mission has one vehicle, and a vehicle belongs to one mission.

I have set up the relationships in both of my Models as follows:

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

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

I am trying to grab an entire mission & vehicle row based on the name of the vehicle:

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

I would expect this to work, yet it does not, and furthermore, returns a recursive Eloquent\Builder object which crashes my browser. Why is this?

You have to call get to get the result:

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