2016-05-11 57 views
0

我試圖創建領域成員的檢查等於1檢查是否在DB laravel場

我創建了一個輔助類,在我app.blade.php

增加它在這裏是我的代碼。

助手類:

function checkMember() { 
    $stmt = DB::table('users')->where('member', '=', 1); 
    if ($stmt) { 
    return True; 
    } 
    return False; 
} 

app.blade.php

@if (checkMember() == True) 
    <li><a href="{{ url('/member') }}"><i class="fa fa-btn fa-terminal"></i>Member Panel</a></li> 
@endif 

的錯誤是它顯示的<li>即使當構件== 0在DB

+0

正如文檔中所述,where方法返回一個集合。所以它的功能永遠是真的。 – Daedalus

+0

哦,有沒有辦法改變爲假? –

回答

2

你checkMember( )方法是不完整的 - 它不會啓動查詢,它只會構建它,所以它始終是真的。試試這個:

function checkMember() { 
    $stmt = DB::table('users')->where('member', 1)->first(); 

    return $stmt ? true : false; 
} 

我也關心你的查詢有點 - 這將檢查是否有'成員'字段設置爲true的任何用戶。所以,如果你至少有一個成員 - 它會爲所有的網絡用戶返回true。

難道你不想對當前的登錄用戶執行此檢查嗎?

+0

噢,我完全忘記了這一點。我希望它與當前登錄的用戶進行覈對。 –

+0

然後做一些像DB :: table('users') - > where('member',1) - > where('id',Auth :: user() - > id) - > first(); –

+0

@DenisMysenko有一個比這更簡單的方法:'Auth :: user() - > member == 1? true:false;'。 – Daedalus