使用另一个表中的外键id检索列值

时间:2016-08-23 17:44:51

标签: database laravel-5.2

我在控制器中编写了这个函数

public function collector_second()
    {


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

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


    }

在collections表中,我有record_id,它是记录表的外键。我在刀片模板中有这个foreach循环

 @foreach($collectors as $collector)


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

 @endforeach

在表中显示record_id时,我想要记录表中的user_name。我在模型中都有我的关系

class Record extends Model
{

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



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

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以使用查询构建器

来实现此目的
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));


}

这只是通过加入集合来选择所有记录。