检查查询中是否存在user_id

时间:2015-10-20 08:09:45

标签: php laravel laravel-5

我尝试使用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;
    }

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;