laravel 中 3 个表的关系

relationship of 3 tables in laravel

鉴于我有 3 个表:用户、能力和 competences_user,我如何使用查询构建器获取每个用户的技能列表?

Table 结构:

这是我目前尝试过的方法:

select user.id, user.nom, competences.titre
FROM user
  Inner Join competences_user 
     ON = competences_user.competence_id AND user.id = competence_user.user_id
  Inner Join competences
     ON competences.id = competence_user.competence_id

有很多方法可以做到这一点,没有查询生成器的简单方法:

即:

$users = DB::table('users')
        ->join('contacts', 'users.id', '=', 'contacts.user_id')
        ->join('orders', 'users.id', '=', 'orders.user_id')
        ->select('users.*', 'contacts.phone', 'orders.price')
        ->get();

回答你的问题:

$users = DB::table('users')
        ->join('competences_user', 'competences_user.user_id', '=', 'users.id')
        ->join('competences', 'competences_user.competence_id', '=', 'competences.id')
        ->select('users.*', 'competences.titre')
        ->get();

详情请参考documentation