【问题标题】:Laravel logging "Class 'Arr' not found in Command line code:1"Laravel 记录“在命令行代码中找不到类 'Arr':1”
【发布时间】:2020-09-25 18:54:16
【问题描述】:

下面的错误是每分钟记录到 laravel 存储日志的堆栈跟踪。

[2020-09-25 19:51:40] local.ERROR: Uncaught Error: Class 'Arr' not found in Command line code:1
Stack trace:
#0 {main}
  thrown {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\FatalErrorException(code: 1): Uncaught Error: Class 'Arr' not found in Command line code:1
Stack trace:
#0 {main}
  thrown at Command line code:1)
[stacktrace]
#0 {main}
"} 

我没有在我的控制器或刀片模板中使用过这个。

感谢任何帮助。

【问题讨论】:

  • 这能回答你的问题吗? Laravel 5.8 - Class 'Arr' not found
  • 我没有在我的刀片模板(或任何地方)中实现该类,如该示例所示。
  • 某事是;上面的修复应该可以解决它。
  • 当我添加它们时,它只是抱怨策略类不存在。我没有改变任何事情让这开始发生,这很奇怪。
  • 这也发生在我身上,大约在 5 天前。这很奇怪。

标签: laravel-5


【解决方案1】:

对于收到此问题的任何人,这实际上是一个名为 laravel-extra-intellisense 的 VSCode Laravel 插件的问题。

这个问题实际上是插件的问题,因为它使用了 Laravel 5.8 及更高版本的功能,所以如果你的项目使用 Laravel 5.7 及更低版本,你可以这样做来清除错误。

将此行添加到您的config/app.php

'Arr'         => Illuminate\Support\Arr::class, dlam config/app.php

添加该行后,您可能会收到类似这样的新错误

[2020-10-06 05:57:04] local.ERROR: Uncaught ReflectionException: Class App\Policies\ModelPolicy does not exist in Command line code:1
Stack trace:
#0 Command line code(1): ReflectionClass->__construct('App\\Policies\\Mo...')
#1 [internal function]: {closure}('App\\Policies\\Mo...', 'App\\Model')
#2 Command line code(1): array_map(Object(Closure), Array, Array)
#3 {main}
  thrown {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\FatalErrorException(code: 1): Uncaught ReflectionException: Class App\\Policies\\ModelPolicy does not exist in Command line code:1
Stack trace:
#0 Command line code(1): ReflectionClass->__construct('App\\\\Policies\\\\Mo...')
#1 [internal function]: {closure}('App\\\\Policies\\\\Mo...', 'App\\\\Model')
#2 Command line code(1): array_map(Object(Closure), Array, Array)
#3 {main}
  thrown at Command line code:1)
[stacktrace]
#0 {main}
"} 

你可以通过在app\Providers\AuthServiceProvider.php评论这一行来解决这个问题

/**
* The policy mappings for the application.
*
* @var array
*/
protected $policies = [
    // 'App\Model' => 'App\Policies\ModelPolicy', <-- comment this line
];

所有这些更改已经在最新的 Laravel(5.8 及更高版本)中

我认为发生这种情况是因为插件的记录器处理程序无法正常工作,这就是它登录您的 laravel 项目的原因。因此,在修复之前,请执行上述操作或升级您的 laravel。

您可以查看this issue in the plugin's github

【讨论】:

  • 这个问题一直让我发疯,特别是App\Policies\ModelPolicy does not exist in Command line code:1。即使我运行的是 5.8,我仍然必须注释掉“App\Model”策略。
  • @Bennett 如果您将 Laravel 从 5.7 及以下版本升级到 5.8 及更高版本,您仍然需要对该行发表评论,因为升级没有为您发表评论。只有全新安装才会立即对其进行评论。
  • 这个答案是救命稻草。谢谢!
【解决方案2】:

感谢您的帮助,但我通过卸载并重新安装代客解决了这个问题。

没有意义,但幸运的是错误消失了。

肖恩

【讨论】:

    猜你喜欢
    • 2019-09-16
    • 2018-02-03
    • 2018-12-19
    • 1970-01-01
    • 2021-12-28
    • 2021-09-20
    • 2017-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多