2017-10-31 17 views
0

は、私は両方のUserGroupモデルからとのUserGroupモデルで(のUserGroupでbelongsToの方法)はこの雄弁なクエリは

とグループモデルからGET値をしようとして動作させることはできませんマイクエリ:

$arrayGroupes = UserGroup::from("user_group as ug") 
->with(['group' => function($query){ 
    $query->select('group_id','name as name_group', DB::raw("IF(restricted=1,1,0) as restricted"), "transfer_only"); 
}])->select("ug.user_id", "u.first_name", "u.surname") 
    ->join("users as u", "u.user_id", "=", "ug.user_id") 
    ->whereIn("ug.group_id", [1,2,3,4,5]) 
    ->where("ug.active", "=", 1)->get(); 

戻りnull しかし

を行う場合にのみ、 210
$arrayGroupes = UserGroup::with(['group' => function($query){ 
     $query->select('group_id','name as name_group', DB::raw("IF(restricted=1,1,0) as restricted"), "transfer_only"); 
    }])->whereIn("group_id", [1,2,3,4,5]) 
     ->where("active", "=", 1)->get(); 

UserGroupから一部の値しか選択できません。 誰かが私の答えですか? ありがとう!

答えて

1
$userGroups = UserGroup::from("user_group as ug") 
    ->join("users as u", "u.user_id", "=", "ug.user_id") 
    ->select("ug.user_id", "ug.group_id", "ug.active", "u.first_name", "u.surname") 
    ->with(['group' => function($query){ 
     $query->select('group_id','name as name_group', DB::raw("IF(restricted=1,1,0) as restricted"), "transfer_only"); 
    }]) 
    ->whereIn("ug.group_id", [1,2,3,4,5]) 
    ->where("ug.active", "=", 1) 
    ->get(); 

これを試してください。未検証。

+0

試してみましたが正しく動作していないようです。例えば、私のモデル(http://www.newbox.ca/ecrypting-stored-data-with-laravel/)で暗号化のためにTraitを使用していますが、私のグループの名前は暗号化されて戻ってきますUserGroupモデルのグループ機能を使用していますが、Userモデルを持たないGroupモデルでのみ取得すると、name_groupが復号化されます...しかし、お手伝いをしてくれてありがとう! – devvmiller

+0

@devvmiller私はそれを取得しません。クエリでは、UserGroupからグループ名を取得できます。 '$ userGroup-> group-> name'という名前のメソッドを返します。 –

+1

あなたのお手伝いをしていただきありがとうございます – devvmiller