【发布时间】:2017-03-29 12:03:06
【问题描述】:
最近开始使用 Laravel 5.4。我试图在下面的代码中捕获一个错误并从控制器返回一个 json 响应,但它似乎通常会抛出错误
try {
$credentials = $request->only('Username', 'Password');
$driverdata = Driver::where('username', $credentials['Username'])
->where('password', Hasher::hash($credentials['Password']))
->where('deleted', 0)
->where('blocked', 0)
->where('status', 1)
->first();
// if(!count($driverdata)){
// return response()->json("Login Failed",401);
// }
return response()->json($driverdata->toArray());
} catch (Exception $e) {
return response()->json($e->getMessage(), 500);
}
我也试过了
use Exception;
在顶部 也用作
catch (\Exception $e) {
return response()->json($e->getMessage(), 500);
}
以下是我得到的错误
LoginController.php 第 26 行中的 FatalErrorException: 在 null 上调用成员函数 toArray()
有什么建议吗?但同样的事情曾经在 Laravel 5.2 中工作
【问题讨论】:
-
你得到的确切错误是什么?
-
抱歉更新了问题@RahmanQaiser
-
FatalErrorException不会被 php 捕获。 -
不如手动处理当前场景 if($driverdata){ return response()->json($driverdata->toArray()); } return response()->json(['success' => false , 'error' => 'not found']);
-
@JustOnUnderMillions 不知道