Comment écrire une jointure interne dans Éloquent ORM dans laravel?

J'ai une table nommé buildings et flats

table bâtiments

Building_Id | Building_Name | .......| Building_Owned_By | ....

appartements table

Flat_Id | Flat_Name | ........| Fk_Building_Id | .....

et dans Mes Modèles

Bâtiment

class Building extends Eloquent {
    protected $primaryKey = "Building_Id";
    protected $table = 'buildings';
    .......
    .......
    public function flat()
    {
        return  $this->hasMany('Flat', 'Fk_Building_Id', 'Building_Id');
    }
}

Plat

class Flat extends Eloquent {
    protected $primaryKey = "Flat_Id";
    protected $table = 'flats';
    .......
    .......
    public function building() {
        return $this->belongsTo('Building','Fk_Building_Id', 'Building_Id');
    }
}

et dans mon contrôleur

$flats =  Flat::where('Fk_Building_Id', '=',$buildingid)
               ->where('Building_Owned_By', '=',Auth::user()->Login_Id)
               ->orderBy('Flat_Name')
               ->get(array('Flat_Id as flatId', 'Flat_Name as flatName'))
               ->toArray();

Mais elle ne retourne rien.

Comment peut-on effectuer des jointures internes dans Éloquent Orm (je ne veux pas utiliser couramment requête)?

Mise à jour

Merci pour @Créateur pour son temps précieux et de l'aide. Il m'aide beaucoup pour trouver ce. La solution est à nous d'utiliser whereHas et nous réécrire le code comme

$flats =  Flat::whereHas('building', function($q){ 
                      $q->where('Building_Owned_By', '=',Auth::user()->Login_Id);
               })
               ->where('Fk_Building_Id', '=',$buildingid)
               ->orderBy('Flat_Name')
               ->get(array('Flat_Id as flatId', 'Flat_Name as flatName'))
               ->toArray();

OriginalL'auteur manuthalasseril | 2014-02-20