当我通过 API 从 laravel 中的数据库中获取用户数据时出现错误
Posted
技术标签:
【中文标题】当我通过 API 从 laravel 中的数据库中获取用户数据时出现错误【英文标题】:i am getting error when i am fetching user data from database in laravel through API 【发布时间】:2020-06-02 07:21:03 【问题描述】:Hello Guys 现在正在研究 laravel api,一切都很完美,只是我面临的一个问题是,当我输入错误的用户名和密码时,我能够获取用户数据,但是当我输入正确的用户信息时,我遇到了异常,那就是无效证件。请帮帮我
这是我的模型代码
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class email extends Model
protected $table = 'users';
& 这是我的控制器代码
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\email;
class EmailController extends Controller
public function databyemail(Request $request)
$data = email::where('email', $request->email)->first();
if($data->password === bcrypt($request->password))
return response()->json($data);
else
return response()->json(['error' => 'Incorrect credentials!']);
【问题讨论】:
【参考方案1】:你能不能试试Hash::check
的方法来匹配密码。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Hash;
use App\email;
class EmailController extends Controller
public function databyemail(Request $request)
$data = email::where('email', $request->email)->first();
if( Hash::check( $request->password, $data->password ) )
return response()->json($data);
else
return response()->json(['error' => 'Incorrect credentials!']);
【讨论】:
@MuhammadSajidLakha 我认为您还有另一个问题。你的 laravel 版本是什么?首先,在匹配密码之前尝试dd($data)
。并检查是否获取用户数据?
@MuhammadSajidLakha 您应该在控制器类之前添加Use Hash;
。
email)->first(); if($data->password === bcrypt($request->password)) return response()->json($data); else return response()->json(['error' => '不正确的凭据!']);
我的laravel版本是5.7
@MuhammadSajidLakha 我已经更新了我的答案。如果发生任何错误,请添加完整的错误状态。以上是关于当我通过 API 从 laravel 中的数据库中获取用户数据时出现错误的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Laravel 中使用 HTTP 请求的删除方法通过外部 Api 库删除项目
Laravel:如何通过 API postman 上传图像并将其保存到数据库(phpmyadmin)
如何通过 Laravel 中的 API 从 Shopify 商店获取所有订单