未找到laravel类(适用于localhost但不适用于DO服务器)

geo*_*trl 7 php autoload laravel composer-php laravel-4

这是一个重复的问题 - 例如: Laravel 4迁移 - 找不到类

但是,我已经尝试了所有解决方案(来自我能找到的每个论坛)并且无法解决这个问题.

脚本

我在我的本地机器上创建了一个Laravel 4项目 - 添加了一些类,控制器,视图等 - 项目运行良好.

然后我将这个新的repo复制到我的DO服务器上 - 用composer等安装依赖项.该项目看起来不错,除了一个页面发出错误:

Class 'company' not found
Symfony\Component\Debug\Exception\FatalErrorException
…/­vendor/­laravel/­framework/­src/­Illuminate/­Database/­Eloquent/­Model.php593
Run Code Online (Sandbox Code Playgroud)

您可以在此处查看此页面.

我试过了...

我已经更新了作曲家.我试过"dump-autoload".我在composer.json文件中将'minimum-stability'更改为'stable'(是的,这是在论坛帖子上提出的解决方案).

其他解决方案与在composer.json文件中添加"psr-4"或"psr-0"有关,具体取决于作曲家版本 - 尝试了两者.

最令我难以置信的是,这个页面在我的本地机器上工作得很好,但在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"
}
Run Code Online (Sandbox Code Playgroud)

The*_*pha 21

最有可能(我很确定)你的本地环境Windows和实时服务器是Linux.因此,如果类company类文件company.php在本地服务器上使用,那么它Company.php在本地服务器上是相同的,但是Linux如下区分大小写的规则,因此它读取company.phpCompany.php作为两个不同的文件.

因此,如果您使用了文件名,那么请Company.php确保您在Windows中使用相同的案例而Company不是company(较低)引用该类,c并且C无关紧要,但Linux/Unix因为它具有区分大小写的性质.

  • 确实!我不确定为什么只有一个类不起作用(它们都以相同的方式设置...),但是将类名更改为小写并再次自动转储将其修复.再次感谢 (2认同)
  • 完美的!!!在可能的情况下,我的本地主机是Mac,甚至不同它也能工作。在我的服务器中,我使用 Apache 和 NGINX,如果它不同(大写和小写),它就不起作用。我为此浪费了很多时间,但你是对的。谢谢。 (2认同)

Amr*_*Amr 7

当我添加/创建一个Follower_Group在我工作的项目中调用的新模型类时,我遇到了同样的问题,经过一些搜索,我找到了一个在我的案例中运行良好的解决方案.试试这个:

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