2014-10-28 50 views
1

上引用或定義一次。我應該每次使用laravel Auth :: user使用Laravel 4及其Auth功能在頁面

假設我想檢查登錄ID是否與博客創建者ID匹配。

if (Auth::user()->id == $blog->blogOwnerID) 
{ 
    // do something 
} 

工作正常,但我需要檢查頁面中的各個位置。

另一種選擇是將用戶ID和博客創建者ID設置爲變量以便於使用。

// at start of page 
$blogOwnerID = $blog->blogOwnerID; 
if (Auth::check()) 
{ 
    $userID = Auth::user()->id; 
} 

現在林不知道是否會有,除非引用它檢查反正變量時不調用函數每次,任何的性能提升。

只是尋找正確的做事方式:)

克雷格。

回答

1

是的,如果不一次又一次調用函數,會有一個(小)性能優勢。它是非常小的,所以它真的歸結爲更可讀和更喜歡什麼。

我會做這樣的:

$userId = Auth::check() ? Auth::user()->id : false; 
$blogOwnerID = $blog->blogOwnerID; 

// do my checks 
if ($blogOwnerID === $userId) { 
    // do something 
} 

確保您使用===這樣你就不會得到誤報如果$blog->blogOwnerID是0

+0

感謝,非常肯定,在性能止跌的通知不是主要的。我可以問這種類型的if語句的名稱嗎?已經看到它使用,但從來不知道它的所謂或更多的信息。 – Lovelock 2014-10-28 23:42:51

+1

你的意思是'Auth :: check()? Auth :: user() - > id:false;'?如果 – lukasgeiter 2014-10-28 23:48:23

+1

被稱爲*速記*它被稱爲三元運算符或速記 - 如果 - http://www.tuxradar.com/practicalphp/3/12/4 – 2014-10-28 23:49:56