2015-09-25 36 views
0

在我收到此錯誤調用一個成員函數isATeamManager()非對象

「調用一個成員函數isATeamManager()一個非對象」。


(RedirectIfNotAManager.php) 

<?php 

namespace App\Http\Middleware; 
use Illuminate\Http\Request; 
use Closure; 


class RedirectIfNotAManager 
{ 


    public function handle($request, Closure $next) 
    { 
     if(!$request->user()->isATeamManager()) 
     { 

      return redirect('articles'); 

     } 

     return $next($request); 
    } 
} 

我用Google搜索,並沒有得到任何解決方案,因爲我是新來laravel好心幫我在laravel 5.1解決這個問題。它的。我曾嘗試其他的例子,仍然收到這個錯誤..

(這是user.php的型號代碼:)

<?php 

namespace App; 


class User extends Model implements AuthenticatableContract, 
            AuthorizableContract, 
            CanResetPasswordContract 
{ 
    use Authenticatable, Authorizable, CanResetPassword; 

    protected $table = 'users'; 


    protected $fillable = ['name', 'email', 'password']; 


    protected $hidden = ['password', 'remember_token']; 


    public function articles() 

    { 


     return $this->hasMany('App\Article'); 
    } 

    public function isATeamManager() 
    { 

     return false; 
    } 
} 
+3

https://stackoverflow.com/questions/54566/call-toa-a-member-function-on-a-non-object?rq=1 https://stackoverflow.com/questions/254291/call-to-a-non-object?rq = 1 https://stackoverflow.com/questions/1787561/call-toa-a-member-function-on-a-non-對象?rq = 1 https://stackoverflow.com/questions/10287023/call-to-member-function-on-non-object?rq=1 ..... – Ghedipunk

+0

謝謝你 幫幫我!!! – egom

回答

1

這意味着,你的請求不具有存儲在其上的用戶。所以沒有人登錄或您的會話無法正常工作。 $request->user()是一個函數,試圖拉動當前用戶,默認情況下,如果有人登錄它將返回一個用戶對象或空值我相信。所以你最有可能得到一個空值。你可以你的if語句改成這樣:

if(!$request->user() || !$request->user()->isATeamManager()) { 
+0

謝謝!你是對的!!如果($ request-> user()){ if(!$ request-> user())如果($ request-> user()){012;}請求解決方案只在用戶登錄時才起作用...我不會登錄試圖... if > user() - > isATeamManager()){ } } – egom

0

我得到了解決..

這是工作!
公共職能手柄($請求,一次閉合$) { 如果($請求 - >用戶()){//這將返回null如果用戶沒有登錄,其計算結果爲假

 if (!$request->user()->isATeamManager()) { 

      return redirect('articles'); 
     } 
    } 

    return $next($request); 
} 

}

相關問題