質問失礼します。
Laravel 6
リレーション先のレコードをgroupByで重複した要素の削除をしたいと考えています。
table
gearテーブル(id)とsave_gearテーブル(gear_id)が一対一の関係で繋がっています。
gearテーブルにcategoryカラムが存在します。
sage_gearモデルからリレーション先のgearテーブルのcategoryカラムをgroupByでcategory要素を重複を無くせると考えたのですが、どうですか?また、他の方法があればご教授ください。
試したこと
whereHasの中で、groupByをつける
PHP
1public function getUserSave_gears(User $user, Save_gear $save_gear, Gear $gear){ 2 $user_id = $user->id; 3 4 dd($save_gear->where("user_id", $user_id)->whereHas("gear", function($query){ 5 $query->where("category", "椅子"); 6 })->get()); 7}
PHP
1public function getUserSave_gears(User $user, Save_gear $save_gear, Gear $gear){ 2 $user_id = $user->id; 3 4 dd($save_gear->where("user_id", $user_id)->whereHas("gear", function($query){ 5 $query->where("category", "椅子")->groupBy("category"); 6 })->get()); 7}
結果
二つのコードでdumpした結果は、取得できた三つ(category = 椅子) はgroupByをつけても単一にならず、複数のままであった。