2017-04-01 50 views
0

我需要讓角色菜單中laravel,我有使用戶模型中,這funcion如何在laravel角色菜單

public function isTeacher() { 
    return $this->where('role', '3')->exists(); 
} 

,並在app.blade使得這樣的:

@if(Auth::user()->isTeacher()) 

    <li class=" btn"> 
     <a class="menu" href="/">الرئيسية</a> 
    </li> 
    <li class=" btn"> 
     <a class="menu" href="/">تقييم الأطفال</a> 
    </li> 
    <li class=" btn"> 
     <a class="menu" href="/">تسجيل طفل جديد</a> 
    </li> 
    <li class=" btn"> 
     <a class="menu" href="/indexTable">إدخال جدول الانشطة</a> 
    </li> 
    <li class=" btn"> 
     <a class="menu" href="/">مراجعة جدول الانشطة</a> 
    </li> 
@endif 
@if (Auth::guest()) 

    <li class=" btn"> 
     <a href="/register" class="log"> تسجيل ولي أمر جديد </a> 
    </li> 
@endif 

但它給我的錯誤:

調用一個成員函數isTeacher()一個非對象

+1

錯誤是顯式的:Auth :: user()沒有返回一個對象,可能是因爲你沒有通過身份驗證。例如嘗試使用var_dump()檢查Auth :: user()。 – dparoli

回答

0

在刀片變化:

@if(Auth::user()->isTeacher()) 

@if(Auth::user() && Auth::user()->isTeacher()) 

你檢查不正確,如果用戶沒有記錄Auth :: user()返回null,所以在調用isTeacher()之前,你必須檢查Auth :: user()是否是一個對象

+0

這與我一起工作。 –

0

我不認爲你需要的大括號 「()」 後,您isTeacher

@if(Auth::user()->isTeacher){ 
    // 
} 
+0

在刀片中,你需要使它成爲教師() –