这是一个重复的问题 - 例如:拉拉维尔 4 迁移 - 未找到类
但是,我已经尝试了所有解决方案(从我能找到的每个论坛中)并且无法弄清楚这一点。
场景
我在本地机器上创建了一个 Laravel 4 项目 - 添加了一些类、控制器、视图等 - 该项目效果很好。
然后我将这个新的存储库复制到我的 DO 服务器上 - 使用作曲家等安装依赖项。该项目看起来不错,除了一个页面喊出错误:
Class 'company' not found
SymfonyComponentDebugExceptionFatalErrorException
…/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php593
您可以在此处查看此页面。
我试过了...
我已经更新了作曲家。我尝试过"转储自动加载"。我将 composer.json 文件中的"最小稳定性"更改为"稳定"(是的,这是论坛帖子中提出的解决方案)。
其他解决方案与将"psr-4"或"psr-0"添加到 composer.json 文件中有关,具体取决于作曲家版本 - 尝试了两者。
最让我难以置信的是,这个页面在我的本地机器上运行良好,但在 DO 服务器上却不行......如果你们需要更多关于这个答案的信息,请告诉我。
任何帮助都值得赞赏:)
这是我的 composer.json 文件的样子:
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"require": {
"laravel/framework": "4.0.*"
},
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
]
},
"scripts": {
"post-install-cmd": [
"php artisan optimize"
],
"post-update-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
},
"minimum-stability": "stable"
}
(我很确定)您的本地环境Windows
并且实时服务器Linux
。因此,如果类company
类文件在本地服务器上用作company.php
,则在本地服务器上Company.php
相同,但Linux
遵循区分大小写的规则,因此它将company.php
和Company.php
读取为两个不同的文件。
因此,如果您使用了文件名Company.php
那么请确保您引用的类与 Company
不是 company
(更低),在 Windows c
中,C
无关紧要,但在Linux/Unix
它确实如此,因为它区分大小写的性质。
当我在我从事的项目中添加/创建一个名为 Follower_Group
的新模型类时,我遇到了同样的问题,经过一些搜索,我得出了一个在我的情况下效果很好的解决方案。试试这个:
- 在本地
- 计算机的终端中
composer dump-autoload
执行命令。 - 将这两个文件夹从本地计算机重新上传
/bootstrap
和/vendor/composer
到服务器。
如果您使用的是 git,并且希望 Git 区分大小写,请调整其配置:
只需对当前存储库使用以下命令:
git config core.ignorecase false
对于全局设置:
git config --global core.ignorecase false
我遇到了同样的问题。
这是一条名为应用程序/助手的路径,在它里面,我的类日志:
namespace AppHelpers;
class Log {
...
}
在我的本地计算机上,它工作正常,但在服务器上,我有一个例外。
解决方案是什么?将路径名从"帮助程序"更改为"帮助程序"。
因此,请注意大写;)
在上传过程中,有时会发生文件被上传但其中的内容是空白的。
我遇到了类似的问题,并修复了重新上传文件的问题。
当我在服务器上看到该文件时,它是 0 字节,所以我必须重新上传本地文件才能解决问题。
计算机终端中运行命令composer dump-autoload
,然后将本地计算机中的供应商重新上传到服务器。
我有用->在实时服务器上执行:composer install
这应该安装缺少的所有必要软件包。
希望这对某人有所帮助!