2016-08-23 1 views
0

J'ai écrit cette fonction dans le contrôleurrécupérer une valeur de colonne à l'aide id clé étrangère dans une autre table

public function collector_second() 
    { 


     $collectors=DB::table('collections')->where('collector_id', '=', 2)->get(); 

     return View::make('users.collector', compact('collectors',$collectors)); 


    } 

Dans le tableau des collections je RECORD_ID qui est une clé étrangère de la table des dossiers. Et j'ai cette boucle foreach dans le modèle de lame

@foreach($collectors as $collector) 


       <td>{{$collector->record_id}}</td> 

@endforeach 

Insted d'afficher la record_id dans le tableau que je veux user_name de la table des dossiers. J'ai ma relation à la fois dans le modèle

class Record extends Model 
{ 

    public function collections() 
    { 
     return $this->hasMany('App\Collection'); 
    } 
} 



    class Collection extends Model 
{ 
    public function records() 
    { 
     return $this->belongsTo('App\Record'); 
    } 
} 

Comment puis-je obtenir ce droit?

Répondre

0

vous pouvez le faire en utilisant le constructeur de requêtes

public function collector_second() 
{ 


     $collectors = DB::table('collections') 
      ->join('records','records.id','=','collections.record_id') 
      ->where('collector_id', '=', 2) 
      ->select('records.*) 
      ->get(); 

     return View::make('users.collector', compact('collectors',$collectors)); 


} 

Cela permet de sélectionner simplement tous les enregistrements en se joignant à la collecte.