2017-07-26 131 views
1

我在Laravel的用戶模型中有兩個對象。假設我們說比較Laravel中的兩個對象

public function someFunction(User $user) { 
    $adminUser = User::where('role', '=', 1); 
    if($adminUser === $user) { 
     return true; 
    } 
    return false; 
} 

這是比較Laravel中兩個對象的正確方法嗎?根據PHP Object Comparison,這應該工作。

感謝您的任何意見。

+0

你是什麼意思:'沒有辦法比較沒有訪問模型的特定列'? – Maraboc

+0

沒有這樣做:$ user-> role – user1506104

+1

那麼在用戶模型isAdmin中定義一個方法,然後使用它$'user-> isAdmin()'? – Maraboc

回答

4

由於$userUser例如,你可以做到這一點不執行任何其他查詢:

public function someFunction(User $user) { 
    return $user->role === 1; 
} 

此代碼將返回true如果用戶的角色爲1和false如果角色是不是1

+0

如果不訪問模型的特定列,沒有辦法進行比較? (upvoted) – user1506104

1

你應該試試這個:

public function someFunction(User $user) { 

    if($user->role === 1) { 
     return true; 
    } 
    return false; 
} 

希望爲你工作!!!

+0

如果沒有訪問模型的特定列,沒有辦法進行比較? (upvoted) – user1506104