我不知道如何描述这个主题,但这是我的问题:
我有一个名为 users 的模型/表,它有一个名为 type 的字段。我制作了一个中间件来让 Controller 访问特定类型。当它通过中间件时,就没有问题了。但是当类型不相同时,会给出这样的错误:
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
问题是,这给了我一个类型错误,它不是我表中的类型字段。我尝试更改字段名称,以防您认为这与我的字段名称有关。
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')
关于php - 未通过中间件时来自节流请求的 TypeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62950468/