尝试在Laravel 5.4中无法工作

时间:2017-03-29 12:03:06

标签: php laravel try-catch

最近开始在Laravel 5.4工作。我试图捕获一个错误,并在以下代码中从控制器返回一个json响应,但似乎通常会抛出错误

$input_line='EX-L Sedan 4-Door';
if(preg_match($piped_regex,$input_line,$output_array)){
    var_export($output_array);
}
// output: array(0=>'EX-L')

我也试过

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;

以下是我得到的错误

  

LoginController.php第26行中的FatalErrorException:       在null

上调用成员函数toArray()

有什么建议吗?但是同样的事情曾经在Laravel 5.2中起作用

1 个答案:

答案 0 :(得分:-2)

解决问题调用成员函数toArray()on null 更改:

 // if(!count($driverdata)){
 //  return response()->json("Login Failed",401);
 // }  

 if(!count($driverdata)){
    //return response()->json("Login Failed",401);
    throw new Exception('Login Failed');
 }  

这也修复了当前的 FatalErrorException

其他谷歌: laravel 5.4 fatalerrorexception php 5.6