未定义类型 'Request'。intelephense(1009)

7

我在 Laravel 8 中遇到了这个错误,名称为 PHP Intelephense 1.7.1 已安装。

<?php

namespace App\Http\Middleware;

use Illuminate\Auth\Middleware\Authenticate as Middleware;
use Request;


class Authenticate extends Middleware
{
    /**
     * Get the path the user should be redirected to when they are not authenticated.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return string|null
     */
    protected function redirectTo($request)
    {
        if (!$request->expectsJson()) {
            if (Request::is('admin/*'))
                return route('admin.login');
            else
                return route('login');
        }
    }
}

我尝试添加了

use Illuminate\Support\Facades\Route;

但问题仍然存在,有什么想法吗?

谢谢帮助...


你使用 Vscode 进行编码吗? - Biswajit Biswas
是的,我忘了提到我使用的是 Vscode 1.62.3。 - Salem
我尝试添加use Illuminate\Http\Request;但是没有起作用。 - Salem
3个回答

17

解决方案1:您可以通过安装laravel-ide-helper包来解决此问题。链接在这里

解决方案2:将以下代码放入您的settings.json中。

  "intelephense.telemetry.enabled": false,
  "intelephense.completion.triggerParameterHints": true,
  "intelephense.completion.insertUseDeclaration": true,
  "intelephense.trace.server": "messages",
  "intelephense.diagnostics.undefinedClassConstants": false,
  "intelephense.diagnostics.undefinedFunctions": false,
  "intelephense.diagnostics.undefinedConstants": false,
  "intelephense.diagnostics.undefinedProperties": false,
  "intelephense.diagnostics.undefinedTypes": false,
  "intelephense.diagnostics.undefinedMethods": false,

最后别忘了重新启动 VS Code。


谢谢,问题已解决。我如何进行其他设置?那么你从哪里找到这些JSON设置的? - malibil
1
@malibil 使用 VSC 吗?如果是的话,那么在搜索栏上按 ctrl+p,然后输入 >open user settings,在 Extensions 搜索你想要自定义的内容。当你更改时,它会保存到 settings.json 中。 - francisco
如果你正在运行较旧版本的Laravel或PHP,则方案2是正确的选择。 - Paranoid Android
对我来说,解决方案3。 ‍♂️ - undefined

1
"Laravel Snippets" - VScode安装插件。
也许对某些人会很有用。

0
F1 -> 重新加载窗口 -> 输入

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接