我尝试使用laravel eloquent查询,其中用户关注特定品牌。
问题:如何查询品牌列表,让我知道当前登录用户是否关注品牌?
有3张桌子:
品牌:
Id | name | logo
用户:
Id | name | email | password
关注:
brand_id | user_id
现在我试图查询我要添加的所有品牌和集合内部
is_follow = 1 or is_follow = 0
如果用户已经关注,或者如果不存在则为0。
我正在使用分形,所以也许它可以更容易查询。但我真的不知道如何通过首先检查user_id来查询它。
由于
*更新
我设法解决它。但我认为这是一种不好的做法。
$user_id = Request::get('user_id');
foreach($brands->followers as $value){
$array[] = $value->user_id;
}
if(in_array($user_id, $array)){
$is_follow = 1;
}
答案 0 :(得分:1)
您可以通过以下方式检查经过身份验证的User
是否跟随特定Brand
$user = Auth::user();
$exists = $user->brands->contains($brand_id);
您还可以使用原始查询来执行此操作,该查询在性能方面会更好:
$exists = DB::table('user_brand')
->whereBrandId($brand_id)
->whereUserId(Auth::user()->id)
->count() > 0;