每次Laravel收到HTTP请求时,它似乎都在编写app/storage/meta/services.json
文件的新版本。
当Laravel同时收到两个请求时,通常会导致services.json文件格式错误。我的假设是文件由两个进程同时打开和写入。
然后Laravel将抛出500错误:
array_merge(): Argument #2 is not an array
当单个页面请求可能同时有多个AJAX调用时,这尤其麻烦。
我试过让文件不可写,但这导致Laravel在" Permission denied"错误。 Laravel在每次请求时都必须写入此文件似乎效率低下,当然,只有在更改任何服务提供者时才需要创建此清单吗?
是否有一些配置选项我没有发现以防止这种情况发生?
答案 0 :(得分:0)
我最近阅读了一篇关于这个问题的论坛帖子。
建议的解决方法是
删除services.json文件并重新运行composer。
您可以在此处查看该主题以获取更多建议 https://laracasts.com/discuss/channels/general-discussion/getting-weird-error-in-laravel/?page=2
答案 1 :(得分:0)
对于任何绊倒这个的人来说,解决方案就是简单地运行工匠命令
php artisan optimize