php - 未通过中间件时来自节流请求的 TypeError
问题描述
我不知道如何描述这个主题,但这是我的问题:
我有一个名为 users 的模型/表,它有一个名为 type 的字段。我制作了一个中间件,让控制器可以访问特定类型。当它通过中间件时,没有问题。但是当类型不同时,它会给出如下错误:
Argument 1 passed to Illuminate\\Routing\\Middleware\\ThrottleRequests::addHeaders() must be an instance of Symfony\\Component\\HttpFoundation\\Response, string given, called in C:\\xampp\\htdocs\\app\\Http\\Middleware\\ThrottleRequests.php on line 3
问题是,这给了我一个 typeError,它不是我表中的类型字段。我试图更改字段名称,以防您认为这是关于我的字段名称。
ps:我没有做其他任何事情,只是我没有尝试修改节流中间件的默认类。
ps:我使用的中间件是:
'support' => [
'auth:api',
'customMiddleware',
]
更新:
客户中间件:
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$user = Auth::user();
$AccessLevel = 2;
if($user->type >= $AccessLevel){
return $next($request);
}
return "UnAuthorized";
}
解决方案
您可能自动导入了错误的响应类。
在 ThrottleRequests.php 中
你可能有:
use Symfony\Component\HttpFoundation\Response;
将其替换为:
use Illuminate\Http\Response;
分享您的代码会有所帮助,人们确实会回答。
不要返回一个字符串,这不是预期的返回类型:
throw new UnauthorizedHttpException('Some message')
推荐阅读
- mysql - 将表与以逗号分隔的流派/类别表与链接表合并
- node.js - 服务中的模拟存储库,节点 TypeScript
- python - 如何基于一列计算和应用 z 分数,并将其应用于 Pyhton 中的同一列?
- python - 从基类中查找实例类型的 Pythonic 方法是什么?
- java - 正则表达式查找包含数字的行,以文本开头,但从出现中删除文本
- javascript - 对象中的计算值 | 苗条
- latex - 如何将 natbib \bibliographystyle{dcu} 编辑为首选格式?
- regex - java中复杂的正则表达式分隔符
- powershell - 无法在发布管道中打印 Azure-Keyvault 机密
- python - 如何将 Python dict 转换为 Class 对象