我有3张桌子:用户,访问次数,验血次数
表格如下:
用户: ID
访问次数: id,user_id
血统测试:id,visit_id
我需要为当前用户“ SELECT * FROM bloodtests”
我尝试过这种方式:
$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();
但这不起作用。
我们将不胜感激:)
答案 0 :(得分:2)
您将通过此方式将所有用户数据作为集合
$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)
答案 1 :(得分:0)
尝试一下:
$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 :(得分:0)
$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', $id)
->get();