php - 未通过中间件时来自节流请求的 TypeError

标签 php laravel

我不知道如何描述这个主题,但这是我的问题:

我有一个名为 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/

相关文章:

php - Mysql,Php,Laravel 复选框错误

PHP:读取远程文件(最好使用 fopen)

php - 对 laravel 关系集合的自定义排序

php - 有没有办法强制curl使用特定的IP而不是使用DNS查找?

php - 使用 $_GET 的 PDO 查询生成 SQL 语法错误

php - 如何安全地使用 LIKE

php - 拉维尔 4 : Two different view pages for a single URI based on auth status

php - 如果变量为空,Laravel Eloquent 地获得所有

php - {{ }} 和 {!! !!} 在 laravel Blade 文件中?

mysql - Laravel 中删除关系时将外键设置为 'NULL'