这是一个重复的问题 - 例如: Laravel 4 迁移 - 未找到类
但是,我已经尝试了所有解决方案(来自我能找到的每个论坛),但无法解决这个问题。
我在本地计算机上创建了一个 Laravel 4 项目 - 添加了一些类、控制器、视图等 - 该项目运行良好。
然后,我将这个新的存储库复制到我的 DO 服务器上 - 安装与 Composer 的依赖项等。该项目看起来不错,除了一个页面显示错误:
Class 'company' not found
Symfony\Component\Debug\Exception\FatalErrorException
…/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
我也遇到了同样的问题。
这是一个名为 app/helpers 的路径,在它里面是我的类 Log:
namespace App\Helpers;
class Log {
...
}
在我的本地计算机上,它工作正常,但在服务器上,我遇到了异常。
解决方案?将路径名称从“helpers”更改为“Helpers”。
所以,请注意大写;)
我通过将类从“sampleTestCase”重命名为 SampleTestCase”来解决这个问题,然后 Composer dump-autoload 并清除缓存
在上传过程中有时会出现文件上传完毕但里面的内容是空白的情况。
我遇到了类似的问题并通过重新上传文件修复了它。
当我在服务器上看到该文件时,它是 0 字节,因此我必须重新上传本地文件才能解决问题。
在本地机器终端中运行命令
composer dump-autoload
,然后将本地机器中供应商的composer文件夹重新上传到您的服务器。
这对我有用 -> 在您的实时服务器上执行:
composer install
这应该安装所有缺少的必需软件包。
希望这对某人有帮助!