Php Laravel-连接3个表

Php Laravel-连接3个表,php,mysql,laravel,Php,Mysql,Laravel,我有3个表格:用户、访问、血液测试 这些表如下所示: 用户:id 访问:id,用户id 血液测试:身份证,访问身份证 我需要得到的是当前用户的“从血液测试中选择*” 我试着这样做: $item = User::findOrFail($id); //get ID of current user $bt = DB::table('bloodtests') ->join('visits', 'bloodtests.visit_id', '=' ,'visits.id') -

我有3个表格:用户、访问、血液测试

这些表如下所示:

用户:id

访问:id,用户id

血液测试:身份证,访问身份证

我需要得到的是当前用户的“从血液测试中选择*”

我试着这样做:

$item = User::findOrFail($id);   //get ID of current user

$bt = DB::table('bloodtests')
    ->join('visits', 'bloodtests.visit_id', '=' ,'visits.id')
    ->join('users', 'visits.user_id', '=' ,'users.id')
    ->select(
        'bloodtests.id',  
        'bloodtests.visit_id')
    ->where('users.id', $item)
    ->get();
但它不起作用


感谢您提供的任何帮助:)

您将通过此服务收集所有用户的数据

 $item = User::findOrFail($id);
您只需要通过
\Auth::id()
提供当前用户的id,或者直接使用
$id
而不是
$item

$bt = DB::table('bloodtests')
    ->join('visits', 'bloodtests.visit_id', '=' ,'visits.id')
    ->join('users', 'visits.user_id', '=' ,'users.id')
    ->select(
        'bloodtests.id',  
        'bloodtests.visit_id')
    ->where('users.id', \Auth::id())
    ->get();
或直接使用
$id

->where('users.id', $id)

您正在使用此工具将所有用户数据作为集合获取

 $item = User::findOrFail($id);
您只需要通过
\Auth::id()
提供当前用户的id,或者直接使用
$id
而不是
$item

$bt = DB::table('bloodtests')
    ->join('visits', 'bloodtests.visit_id', '=' ,'visits.id')
    ->join('users', 'visits.user_id', '=' ,'users.id')
    ->select(
        'bloodtests.id',  
        'bloodtests.visit_id')
    ->where('users.id', \Auth::id())
    ->get();
或直接使用
$id

->where('users.id', $id)
试试这个:

$item = User::findOrFail($id);

$bt = DB::table('bloodtests')
    ->join('visits', 'bloodtests.visit_id', '=' ,'visits.id')
    ->join('users', 'visits.user_id', '=' ,'users.id')
    ->select(
        'bloodtests.id',  
        'bloodtests.visit_id')
    ->where('users.id', $item->id)
    ->get();
试试这个:

$item = User::findOrFail($id);

$bt = DB::table('bloodtests')
    ->join('visits', 'bloodtests.visit_id', '=' ,'visits.id')
    ->join('users', 'visits.user_id', '=' ,'users.id')
    ->select(
        'bloodtests.id',  
        'bloodtests.visit_id')
    ->where('users.id', $item->id)
    ->get();

它显示了什么样的错误?不清楚。该查询不返回任何内容(应返回2条记录-基于my DBs中的数据)。您可以使用
toSql()
方法检查您的SQL数据库,它显示了什么类型的错误?不清楚。查询不返回任何内容(应返回2条记录-基于my DBs中的数据)。您可以使用
toSql()
方法检查sql