【问题标题】:Laravel InvalidArgumentException in RouteRegistrar.php line 75:RouteRegistrar.php 第 75 行中的 Laravel InvalidArgumentException:
【发布时间】:2017-02-27 09:23:33
【问题描述】:

尝试将 laravel 应用程序部署到生产服务器时,我不断收到此错误:

InvalidArgumentException in RouteRegistrar.php line 75:

in RouteRegistrar.php line 75
at RouteRegistrar->attribute('after', object(AfterFilter)) in Router.php line 1085
at Router->__call('after', array(object(AfterFilter))) in BootProviders.php line 17
at Router->after(object(AfterFilter)) in BootProviders.php line 17
at Application->boot() in BootProviders.php line 17
at BootProviders->bootstrap(object(Application)) in Application.php line 208
at Application->bootstrapWith(array('Illuminate\\Foundation\\Bootstrap\\LoadEnvironmentVariables', 'Illuminate\\Foundation\\Bootstrap\\LoadConfiguration', 'Illuminate\\Foundation\\Bootstrap\\HandleExceptions', 'Illuminate\\Foundation\\Bootstrap\\RegisterFacades', 'Illuminate\\Foundation\\Bootstrap\\RegisterProviders', 'Illuminate\\Foundation\\Bootstrap\\BootProviders')) in Kernel.php line 160
at Kernel->bootstrap() in Kernel.php line 144
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 116
at Kernel->handle(object(Request)) in index.php line 54

奇怪的是,我在本地机器上没有收到此错误。我的机器和生产服务器的 PHP 版本几乎相同(服务器上的 5.6.25 和我的机器上的 5.6.26)。

有谁知道是什么导致了这个错误?

【问题讨论】:

  • 你使用的是哪个版本的 Laravel?你有一个有效的 .env 文件吗?您的部署步骤是什么?
  • Laravel v5.4 .env 文件存在且有效。代码是从 git 存储库克隆的,然后执行“composer install”。当它尝试运行“php artisan optimize”时会发生错误。但我也得到了页面本身的错误。
  • 是在您部署时还是在您尝试访问您的网站时?
  • 在这两种情况下。当我尝试访问该网站时,我得到了那个错误,当我尝试在命令行中执行任何 php artisan 命令时,我得到了同样的错误。

标签: php laravel invalidargumentexception


【解决方案1】:

这个异常应该抛出一个类似Attribute [{$key}] does not exist.的消息,你需要找到这个密钥并修复它。看来你没有使用正确的键名,你可以找到允许的here

protected $allowedAttributes = [
    'as', 'domain', 'middleware', 'name', 'namespace', 'prefix',
];

引发此异常的方法是RouteRegistrar.php文件中的attribute

【讨论】:

  • 是的,它确实会抛出此消息:“属性 [之后] 不存在。”。但问题是产生这个问题的不是我的代码。我也遇到了安装股票 laravel 5.4 的问题。
  • 你是否在你的 Laravel 应用中使用了其他包?
  • 在完整的应用程序中,我正在使用其他包是的。这就是为什么我尝试使用股票 Laravel 安装来查看是否是我的软件包导致了问题。此后,我尝试将其安装在具有类似设置但具有更高 php 版本(5.6.28)的服务器上。在该服务器上它可以工作。
【解决方案2】:

经过更多研究,问题的根源似乎是安装在服务器上的旧版本 New Relic。 https://discuss.newrelic.com/t/php-agent-breaks-laravel-5-2/32801

【讨论】:

    猜你喜欢
    • 2020-04-29
    • 2015-09-24
    • 1970-01-01
    • 2017-04-19
    • 1970-01-01
    • 2017-06-02
    • 2017-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多