Laravel + Vue JS:从DB获取/存储Eloquent Model的值

时间:2017-03-27 18:33:00

标签: laravel laravel-5 eloquent vue.js vuejs2

我使用vue.js 2为前端构建SPA,将Laraval构建为Backend API。 现在,如果用户登录失败超过3次,我会尝试实施验证。

所以我添加了一个列' login_attempts' (int)表示我的用户表。 我的问题是,我不知道 获取 ' login_attempts' {{3在我的laravel后端。

此外,如果进一步验证登录尝试失败/通过,我想增加/重置

// UserController.php
public function signin(Request $request) {

    $credentials = $request->only('email', 'password');
    $email = $request->input('email');

    // Check if login attempts above 3
    // Here I need to get the 'login_attempts' value
    $loginAttempts = App\User::where('email', $email)->value('login_attempts');
    if($loginAttempts >= 3){
       // Response: To many attempts
    }

    try{
        // Some JWT  Auth validation
        }
    } catch (JWTException $e) {
        // Increase failed login counter
        // $attemptedUser->   <--- Here i need to increase the 'login_attempts' for the user with the email of the login request
        $attemptedUser->save();
    }
    // Some more validation and response
}

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

对原始代码进行一些调整

//Here you get the 'login_attempts' value 

$loginAttempts = App\User::where('email', $email)->select('login_attempts')->first();

然后在catch()如下

...

$loginAttempts->login_attempts += 1;
$loginAttempts->save();

这会增加计数。