如何使用Laravel显示具有匹配记录字段的用户?

时间:2019-04-05 21:28:58

标签: php mysql laravel

显示具有匹配ID字段的用户

只有在staffID(员工表)== id(staff表)时才返回工作人员详细信息

下面是我的数据库架构

Staff('id' , 'username' , 'location');

Employer('id' , 'employerID','staffID' );

下面是我尝试过的内容,但是它没有返回任何内容,我也将其返回到我的刀片文件和一个@foreach循环来获取数据。 我尝试过一种模型方法,但是没有运气。

   $following =  DB::table('staff')
    ->select('username')
   ->join('employer' , 'employer.staffID', '=', 'staff.id')
    ->where('employer.employer_id' , '=', Auth::id())
    ->where('employer.staffID' ,'=', 'staff.id') 
    ->get(); 

下面是我如何将查询结果显示在刀片​​中的方法

 @foreach ($following as $userFound)

                        <p> {{ $userFound->username}}</p>                 

 @endforeach   

2 个答案:

答案 0 :(得分:4)

尝试这个:

$following =  DB::table('staff')
$records = following::where('employerID', '=', Auth::user()->id)
                         ->whereRaw('employerID = staffID')->get();

拉瓦雷尔5.2及更高版本的另一种方法是whereColumn

$records = following::where('employerID', '=', Auth::user()->id)
                         ->whereColumn('employerID', 'staffID')->get();

答案 1 :(得分:0)

使用原始SQL

$query = "SELECT username 
          FROM employer JOIN staff ON employee.staffID = staff.id
          WHERE employerID = ?";
$params = [Auth::id()];

$following = \DB::select($query , $params);