代码之家  ›  专栏  ›  技术社区  ›  fightstarr20

Laravel-从ID获取用户名

  •  0
  • fightstarr20  · 技术社区  · 6 年前

    我有一个Laravel 5.6应用程序,它将各种信息记录到数据库表中,然后在HTML视图中显示这些数据。我把这种观点称为。。。

    $logs = Log::all();
    return view('logreport.index')->with('logs', $logs);
    

    该表只包含用户ID,是否有方法获取users表的用户名和姓氏?还是我需要建立一种关系?

    3 回复  |  直到 6 年前
        1
  •  3
  •   ali    6 年前

    如果日志表包含用户名,并且您希望获取用户名,则可以通过关系获取用户名,如下所示:

    在日志模型中添加以下方法:

      public function user(){
         return $this->belongsTo('App\User','user_id','id');
     }
    

    然后您可以访问视图文件中的用户信息,如firstname,如下所示

      @foreach($logs as $log)
           <h1>{{$log->user->first_name  .' '.$log->user->last_name }}</h1>
       @endforeach
    
        2
  •  1
  •   TalESid    6 年前

    你可以用 Eloquent relationship 回答者 Ali 或者你可以使用“ Joins “结果如下:

    $logs = Log::join('users', 'users.id', '=', 'logs.user_id')->get();
    return view('logreport.index')->with('logs', $logs);
    

    然后按以下方式访问结果:

    <h1>{{ $log->first_name .' '. $log->last_name }}</h1>
    
        3
  •  0
  •   Etienne    6 年前

    你不需要建立关系。用雄辩的口才。

    $users = User::whereIn('id', array(...))->get();
    

    或使用查询生成器

    $users = DB::table('users')->whereIn('id', array(...))->get();
    

    用ID值替换点