在本地开发并且一切正常后,我开始将包含许多类和模型的所有新代码推送到服务器。我继续得到一个错误
production.ERROR: exception 'Symfony\Component\Debug\Exception\FatalErrorException' 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
在作曲家返回Compiling common classes
之后导致我进入-dmemory_limit ...
命令
我已经卸载了作曲家,删除了供应商目录,删除了编辑器缓存,删除了编译的.php文件以及其他一些东西,仍然无法解决初始的Class Photo错误。使用类似的LAMP设置,一切都在本地工作正常。我不知所措。还有什么我可以尝试的吗?
答案 0 :(得分:1)
我发现了问题。在我雄辩的关系中,我将模型名称改为小写。我不确定为什么这会在一台服务器而不是另一台服务器上出现问题。这只影响了2个新的模型/类,所以只是我的疏忽。
所以我以前拥有的是:
public function photos()
{
return $this->hasMany('photo')->orderBy('sort', 'ASC');
}
我改为:
public function photos()
{
return $this->hasMany('Photo')->orderBy('sort', 'ASC');
}
答案 1 :(得分:0)
你自己解决了这个问题很好。但是 我想了解为什么它在一台服务器上而不是在其他服务器上运行。
Windows服务器不区分大小写 .Means照片和照片相同..
但是当你选择linux服务器的情况就不一样了。 Linux服务器区分大小写。所以照片与Photo不同..
public function photos()
{
return $this->hasMany('photo')->orderBy('sort', 'ASC');
}
并将其更改为:
public function photos()
{
return $this->hasMany('Photo')->orderBy('sort', 'ASC');
}