L5.2 PHP致命错误:Illuminate \ Auth \ SessionGuard :: basic声明

时间:2016-01-14 20:02:53

标签: php laravel laravel-5 composer-php laravel-5.2

我刚将L5.2应用推送到生产服务器。我做了一些更改,但突然间我收到以下错误:

     PHP Fatal error:  Declaration of Illuminate\Auth\SessionGuard::basic($field = 'email')
     must be compatible with
     Illuminate\Contracts\Auth\SupportsBasicAuth::basic($field = 'email', $extraConditions 
     = Array) in /home/forge/domain.com/bootstrap/cache/compiled.php on line 461

该应用程序在本地和登台服务器上运行良好。

4 个答案:

答案 0 :(得分:8)

只需删除bootstrap / cache / compiled.php文件

rm bootstrap/cache/compiled.php 然后运行 composer dump-autoload

php artisan clear-compiled

它应该有用

答案 1 :(得分:2)

我解决了。

我必须这样做:

rm bootstrap/compiled.php

答案 2 :(得分:0)

我想你已经在生产上运行了composer update。您应该将composer.lock复制到生产服务器(如果尚未完成)并运行composer install以安装与localhost完全相同的版本

您还应该运行php artisan clear-compiled,因为它也可能是问题所在。

答案 3 :(得分:0)

是的,正如其他人所说,删除该文件可以解决错误。

但在我的情况下,文件会在1分钟后自动反复生成。 (因此,为了保持网站运行,我需要一遍又一遍地手动删除该文件:))

所以这就是我所做的:

打开bootstrap / compiled.php,删除所有内容并撤消该文件的写入权限。

这对我来说非常有效。

我知道它的最坏/临时解决方案,但除非我们知道该问题的确切原因和更好的解决方案,否则我们可以使用此解决方案。

但是,我不建议任何人将此解决方案用于生产网站,但您可以将它用于像我的情况一样的演示网站。