Laravel + Vue JS:从数据库中获取/存储 Eloquent 模型的值
Posted
技术标签:
【中文标题】Laravel + Vue JS:从数据库中获取/存储 Eloquent 模型的值【英文标题】:Laravel + Vue JS: Get/store value of Eloquent Model from DB 【发布时间】:2017-08-20 14:32:58 【问题描述】:我使用 vue.js 2 为前端和 Laravel 作为后端 API 构建了一个 SPA。 现在我尝试在用户登录失败超过 3 次时执行验证。
所以我为我的用户表添加了一个列“login_attempts”(int)。 我的问题是我不知道如何在我的 laravel 后端使用Eloquent ORM get 'login_attempts' value。
另外,如果登录尝试的进一步验证失败/通过,我想增加/重置该值。
// 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】:对原始代码的一些调整
//Here you get the 'login_attempts' value
$loginAttempts = App\User::where('email', $email)->select('login_attempts')->first();
然后在catch()
如下
...
$loginAttempts->login_attempts += 1;
$loginAttempts->save();
这将增加计数。
【讨论】:
确保在成功登录时将login_attempts
重置为0
。以上是关于Laravel + Vue JS:从数据库中获取/存储 Eloquent 模型的值的主要内容,如果未能解决你的问题,请参考以下文章
在子级循环中获取父级 json 数据。 (Laravel Vue js)
从vue js中的json nonarray fornmat获取值(后端使用laravel)