2016-05-19 3 views
0

は、どのように私は参加し、次の文でASを使用することができます。 QueryBuilderでASを使用するには?

User::join('role_user', 'id', '=', 'user_id') 
     ->join('roles', 'role_id', '=', 'roles.id') 
     ->where('roles.name', 'teacher') 
     ->get('roles.name AS roleName') // <-- invalid AS usage just for demonstration 

は、既に述べたように、問題は、あることを user.name オーバーライド role.name。どのように私は上記のクエリを変更することができます role.name role_nameの名前が変更され、結果に保存されますか?

+0

あなた自身の質問に答えました。 –

+0

@curious_coder知っていますか? –

答えて

0

問題がselect(...)文でASを使用することによって解決することができます。

述べたように
User::join('role_user', 'id', '=', 'user_id') 
     ->join('roles', 'role_id', '=', 'roles.id') 
     ->where('roles.name', 'teacher') 
     ->select('*', 'roles.name AS roleName') // <-- 
     ->get() 

は、クエリ内の重要な部分は、SELECT文です:

// select all of the columns while renaming 'roles.name' one 
...->select('*', 'roles.name AS roleName') 
0

は、select文でそれを組み込む

User::select('roles.name AS roleName') 
     ->join('role_user', 'id', '=', 'user_id') 
     ->join('roles', 'role_id', '=', 'roles.id') 
     ->where('roles.name', 'teacher') 
     ->get(); 
+0

回答ありがとうございますが、このクエリは** only '** roleName'を選択します –

+1

roleNameとしてroleNameを使用する必要があると思って、これを投稿しました。とにかくあなたは解決策を得ました。 –

関連する問題