找不到 laravel 类(在本地主机上工作,但在 DO 服务器上不起作用)


laravel class not found (works on localhost but not on DO server)

这是一个重复的问题 - 例如:拉拉维尔 4 迁移 - 未找到类

但是,我已经尝试了所有解决方案(从我能找到的每个论坛中)并且无法弄清楚这一点。

场景

我在本地机器上创建了一个 Laravel 4 项目 - 添加了一些类、控制器、视图等 - 该项目效果很好。

然后我将这个新的存储库复制到我的 DO 服务器上 - 使用作曲家等安装依赖项。该项目看起来不错,除了一个页面喊出错误:

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.phpCompany.php读取为两个不同的文件。

因此,如果您使用了文件名Company.php那么请确保您引用的类与 Company 不是 company(更低),在 Windows c 中,C无关紧要,但在Linux/Unix它确实如此,因为它区分大小写的性质。

当我在我从事的项目中添加/创建一个名为 Follower_Group 的新模型类时,我遇到了同样的问题,经过一些搜索,我得出了一个在我的情况下效果很好的解决方案。试试这个:

    在本地
  1. 计算机的终端中composer dump-autoload执行命令。
  2. 将这两个文件夹从本地计算机重新上传/bootstrap/vendor/composer到服务器。

如果您使用的是 git,并且希望 Git 区分大小写,请调整其配置:

只需对当前存储库使用以下命令:

git config core.ignorecase false

对于全局设置:

git config --global core.ignorecase false

我遇到了同样的问题。

这是一条名为应用程序/助手的路径,在它里面,我的类日志:

namespace App'Helpers;
class Log {
 ...
}

在我的本地计算机上,它工作正常,但在服务器上,我有一个例外。

解决方案是什么?将路径名从"帮助程序"更改为"帮助程序"。

因此,请注意大写;)

在上传过程中,有时会发生文件被上传但其中的内容是空白的。

我遇到了类似的问题,并修复了重新上传文件的问题。

当我在服务器上看到该文件时,它是 0 字节,所以我必须重新上传本地文件才能解决问题。

在本地

计算机终端中运行命令composer dump-autoload,然后将本地计算机中的供应商重新上传到服务器。

这对

我有用->在实时服务器上执行:composer install 这应该安装缺少的所有必要软件包。

希望这对某人有所帮助!

相关文章: