Laravel/Composer未将所有类编译为compiled.php



在本地开发并一切正常后,我将所有新代码(包括许多类和模型)推送到服务器。我接着得到一个错误

production.ERROR: exception 'SymfonyComponentDebugExceptionFatalErrorException' with
message 'Class 'photo' not found' in 
/var/www/vhosts/domain.com/httpdocs/bootstrap/compiled.php:6114` error.

我试过:

composer install
composer update
composer dumpautoload -o
php artisan optimize --force
php -dmemory_limit=1G artisan optimize -f

当我运行php artisan optimize --force时,

我得到以下错误:

PHP Fatal error:  Allowed memory size of 33554432 bytes exhausted 
(tried to allocate 72 bytes) in 
/var/www/vhosts/domain.com/httpdocs/vendor/nikic/php-parser/lib/PHPParser/NodeAbstract.php 
on line 34 

在composer返回Compiling common classes之后,它将我引导到-dmemory_limit ...命令

我已经卸载了composer,删除了供应商目录,删除了composers缓存,删除了compiled.php文件和其他一些东西,但仍然无法绕过最初的Class Photo错误。使用类似的LAMP设置,本地一切都很好。我不知所措。还有什么我可以试试的吗?

我发现了问题。在我雄辩的人际关系中,我的模特名字都是小写的。我不知道为什么这会在一台服务器上出现问题,而不是在另一台服务器。这只影响了2个新的模型/类,所以这只是我的疏忽。

所以我之前有:

public function photos()
{
    return $this->hasMany('photo')->orderBy('sort', 'ASC');
}

我把它改成:

public function photos()
{
    return $this->hasMany('Photo')->orderBy('sort', 'ASC');
}

你自己解决这个问题很好。但是我想了解一下为什么它在一台服务器上运行,而不是在另一台服务器。

Windows服务器不区分大小写。表示照片和照片相同。。

但当您选择linux服务器时,情况并非如此Linux服务器区分大小写。因此照片与照片不同。。

public function photos()
{
    return $this->hasMany('photo')->orderBy('sort', 'ASC');
}

并将其更改为:

public function photos()
{
    return $this->hasMany('Photo')->orderBy('sort', 'ASC');
}

相关内容

  • 没有找到相关文章

最新更新