我的代码在生产中,我跑了
php artisan config:clear
之后,我的代码没有运行。索引页面和所有其他页面都显示为白屏,并在firebug中显示500内部服务器错误。当我试图运行时
php artisan
它给了我错误
PHP Fatal error: Call to undefined method Closure::__set_state() in /var/www/live/vendor/config.php on line 56
我的代码正在制作中!!之前没有/vendor/config.php文件,该代码发生了什么? 你有没有遇到过这样的错误? 我已经授予存储/文件夹和vendor /的所有权限。 任何帮助/指南将不胜感激。
答案 0 :(得分:20)
我跑php artisan config:cache
时遇到了类似的问题。显然,当应用程序尝试加载其中包含闭包的缓存配置文件时,这是一个问题。它不会在Laravel中修复,因为在配置文件中关闭是一个不好的做法。请参阅此Github issue
我解决这个问题的方法是撤消这个。
删除config的缓存。
它位于此处
bootstrap/cache/config.php
OR
vendor/config.php
答案 1 :(得分:19)
我过去遇到过类似的问题,不知道是什么造成的,但截至目前,您可以从config.php
删除/vendor
,但不会破坏您的代码。
您的代码将开始工作..
答案 2 :(得分:8)
在其他根本原因中,当在Laravel尝试加载的任何配置文件中定义闭包时,调用php artisan config:cache
会导致此错误。 Laravel不允许在配置文件中关闭;见:
https://github.com/laravel/framework/issues/9625
删除生成的缓存文件(通常位于bootstrap/cache/config.php
),“修复”错误。
长期解决方案是消除所有配置文件中的闭包。有问题的配置文件可以通过检查有问题的行来确定,如错误消息中所述。
如果违规文件是第三方,最好打开库的问题,以便在上游修复问题。
答案 3 :(得分:6)
以下是我要解决的问题:
storage
和auth
的行替换为: 'auth' => 'Tymon\JWTAuth\Providers\Auth\IlluminateAuthAdapter',
'storage' => 'Tymon\JWTAuth\Providers\Storage\IlluminateCacheAdapter'
/bootstrap/cache/config.php
并将其删除php artisan config/cache
php artisan jwt:generate
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\JWTAuthServiceProvider"
那应该这样做!
答案 4 :(得分:1)
尝试从bootstrap/cache
文件夹中删除config.php。它对我有用。
答案 5 :(得分:0)
使用
解决composer update
composer install
答案 6 :(得分:-1)
将config.php
内的vendor/tymon/jwt-auth/src/config
文件更改为此
'auth' => Tymon\JWTAuth\Providers\Auth\IlluminateAuthAdapter::class`
和这个
'storage' => Tymon\JWTAuth\Providers\Storage\IlluminateCacheAdapter::class`
在跑步php artisan config:cache
为我工作之前。