我遇到Laravel表加入問題。當下面的代碼運行其顯示結果:Laravel多個加入問題
$result = DB::table('users')
->join('role_user', 'users.id', '=', 'role_user.user_id')
->where('role_user.role_id', $roleId)
->join('roles', 'role_user.role_id', '=', 'roles.id')
->select('users.*','role_user.role_id','roles.display_name','roles.description')
->get();
但是當我將代碼分成如下:
$result = DB::table('users');
$result->join('role_user', function ($join) {
$join->on('role_user.role_id', '=', 'users.id')
->where('role_user.role_id', $roleId);
});
$result->join('roles', function ($join){
$join->on('role_user.role_id', '=', 'roles.id');
});
$result->select('users.*','role_user.role_id','roles.display_name','roles.description');
$result->get();
似乎具有「用戶」表中加入了「角色」表,但它需要與'role_user'表連接,因爲它在第一個查詢上。
在此先感謝。
你能解釋一下你到底想要什麼嗎?問題不明確 – Sletheren
你有沒有想過使用關係來做到這一點?如果你使用pivot_table作爲roles_users,用戶將擁有belongsToMany角色,角色也是一樣的,那麼你可以用users :: with('roles)或roles :: with('users') – rchatburn
@Sletheren我有一個加入第二個表格和第三個表格與關係有關的問題。第三張桌子試圖加入第一張桌子。 – Tristup