2015-10-20 20 views
0

我試圖使用laravel雄辯來查詢用戶是否遵循特定品牌。檢查user_id是否存在於查詢內

問題:如何查詢品牌列表並讓我知道當前登錄用戶是否正在關注品牌?

有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

您可以檢查驗證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; 
+0

我不能使用第二個。因爲我想要列出所有品牌。並把它放在裏面。 第一個我仍然嘗試使用。 – ssuhat

+0

你想在哪裏添加'is_follow',爲什麼需要這樣做?您已經知道用戶是否通過您的關係關注品牌。 – Adrenaxus

+0

我正在使用它作爲前端API。當我查詢所有品牌時,我想知道用戶是否已經遵循該品牌,因此他們無法再跟蹤。就像twitter一樣。 – ssuhat