簡體   English   中英

為什么用雄辯的模型仍然返回刪除的記錄?

[英]why does deleted record still get returned using eloquent model?

我是laravel的新手,這是我使用任何語言學習的第一個框架,無論如何,我使用刪除了一些記錄:

public function getForceLogOut() 
{
    $input = Input::all();
    $e = $input['email'];

    echo $e;

    DB::select(DB::raw("DELETE FROM active_users WHERE email = '$e'"));
}

但是通過雄辯的模型執行的查詢無論如何都會返回對象,即使它實際上已被刪除(檢查了phpMyAdmin中的表)

public static function isLoggedIn()
{
    $email = Auth::user()->email;

    //$user = ActiveUser::where("email",$email); <== RETURNS THE OBJECT
    $user = DB::select(DB::raw("SELECT * fROM active_users where email = '$email'")); // <== WORKS FINE

    if ($user) {
        return true;
    } else {
        Auth::logout();
        return false;
    }
}

為什么會這樣呢? 雄辯的模型不查詢數據庫並在緩存的記錄或類似的東西上工作嗎?

編輯:是的,正如所指出的,它返回QueryBuilder對象! 我的錯。

您正在執行此操作:

$user = ActiveUser::where("email",$email);

返回你QueryBuilder ,QueryBuilders是使用Laravel,而你通過你的口才模型構建他們准備查詢。

如果要從數據庫中獲取結果,則應該執行以下操作:

$user = ActiveUser::where("email",$email)->first();

它將返回查詢結果;如果記錄不存在,則返回null

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM