![](/img/trans.png)
[英]Eloquent $model->update() does not make changes on database record
[英]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.