Laravel 中的查询生成器无法正常工作

Query builder in Laravel in not working

我有 sql 查询在 MySQL 中运行良好。我想通过加入用户 table 从配置文件 table 获取配置文件 ID。

SELECT profiles.profile_id FROM profiles 
   left JOIN users on profiles.id = users.id where users.id = 1

Laravel 查询生成器查询是

    $my_user_id = Auth::user()->id;
    $my_id =   DB::table('profiles')->select('profiles.profile_id')
                   ->leftjoin('users','users.id' ,'=' ,'profiles.id')
                   ->pluck('profiles.profile_id')
                   ->where('users.id',$my_user_id)
                   ->first();

您还应该 select id 来执行连接:

DB::table('profiles')->select('profiles.profile_id', 'profiles.id')
                     ->leftjoin('users','users.id' ,'=' ,'profiles.id')
                     ->where('users.id',$my_user_id)
                     ->pluck('profiles.profile_id')
                     ->first();

pluck()之前调用where()(不需要select()):

 $my_id = DB::table('profiles')
    ->leftJoin('users', 'users.id', '=' , 'profiles.id')
    ->where('users.id', $my_user_id)
    ->pluck('profiles.profile_id')
    ->first();

你也可以用value()来缩短它:

$my_id = DB::table('profiles')
    ->leftJoin('users', 'users.id', '=' , 'profiles.id')
    ->where('users.id', $my_user_id)
    ->value('profiles.profile_id');