以上代码返回错误,TypeError: App\Http\Controllers\CustomerController::login(): Return value must be of type Illuminate\Http\JsonResponse, none returned in file D:\phpstudy_pro\WWW\hk_backend_api\app\Http\Controllers\CustomerController.php on line 66
时间: 2023-07-24 11:16:07 浏览: 152
解决Python中报错TypeError: must be str, not bytes问题
3星 · 编辑精心推荐
根据错误信息,代码中的登录方法没有正确地返回一个`Illuminate\Http\JsonResponse`对象,导致出现了`TypeError`错误。
在代码的逻辑分支中,确保在所有情况下都返回一个`JsonResponse`对象。你可以在每个分支的最后添加一个默认的返回语句,以返回一个错误的`JsonResponse`对象。例如:
```php
// 验证码方式登录
if (!empty($code)) {
// ...
if (Auth::once(['phone' => $phone, 'enabled' => 1])) {
// ...
return $this->resSuccess([
'token' => $token,
]);
}
// 返回验证码验证失败错误
return $this->resError('用户名或密码错误');
} else {
// 密码登录
if (empty($password)) {
return $this->resError('密码不能为空');
}
if (Auth::once(['phone' => $phone, 'password' => $password, 'enabled' => 1])) {
// ...
return $this->resSuccess([
'token' => $token,
]);
} else {
// 返回用户名或密码错误错误
return $this->resError('用户名或密码错误');
}
}
```
通过在每个分支的末尾添加返回语句,确保在代码的每个路径上都返回了正确的`JsonResponse`对象,解决了错误。
阅读全文