php 未找到laravel类(在localhost上工作,但在DO服务器上不工作)

ndasle7k  于 2022-12-10  发布在  PHP
关注(0)|答案(7)|浏览(201)

这是一个重复的问题-例如:Laravel 4 migrations - class not found
然而,我已经尝试了每一个解决方案(从每一个论坛,我可以找到),不能弄清楚这一点。

方案

我在我的本地机器上创建了一个Laravel 4项目-添加了一些类、控制器、视图等-该项目工作得很好。
然后,我将这个新的repo复制到DO服务器上-安装composer等的依赖项。项目看起来不错,除了一个页面显示错误:

Class 'company' not found
Symfony\Component\Debug\Exception\FatalErrorException
…/­vendor/­laravel/­framework/­src/­Illuminate/­Database/­Eloquent/­Model.php593

您可以here查看此页面。
我试过...
我更新了composer。我尝试了“dump-autoload”。我在composer.json文件中将“minimum-stability”改为“stable”(是的,这是论坛帖子中提出的解决方案)。
其他解决方案必须根据composer版本将“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"
}
qfe3c7zg

qfe3c7zg1#

很可能(我很确定)您的本地环境是Windows,而live server是Linux。因此,如果类company类文件在本地服务器上被用作company.php,那么它在本地服务器上是相同的Company.php,但由于Linux遵循区分大小写的规则,因此它将company.phpCompany.php读作两个不同的文件。
因此,如果您使用的文件名为Company.php,请确保您引用的类使用与Company相同的大小写,而不是company(较低),在Windows中,cC无关,但在Linux/Unix上,由于其区分大小写的性质,它确实如此。

ezykj2lf

ezykj2lf2#

当我在一个项目中添加/创建一个名为Follower_Group的新模型类时,我也遇到过同样的问题,经过一番搜索,我找到了一个solution,它在我的例子中运行得很好。
1.在本地计算机的终端中执行命令composer dump-autoload
1.将这两个文件夹/bootstrap/vendor/composer从本地计算机重新上载到服务器。

7uzetpgm

7uzetpgm3#

如果你使用的是git,并且你希望Git区分大小写,请调整它的配置:
只需对当前存储库使用以下命令:
git config core.ignorecase false
对于全局设置:
git config --global core.ignorecase false

pn9klfpd

pn9klfpd4#

我也有同样的问题。
这是一个名为app/helpers的路径,在它里面是我的类Log:

namespace App\Helpers;

class Log {
 ...
}

在我的本地计算机上,它工作正常,但在服务器上,我遇到了一个异常。
解决方法?将路径名从“helpers”更改为“Helpers”。
所以,要注意大写;)

1dkrff03

1dkrff035#

在上传过程中,有时会发生文件被上传,但里面的内容是空白的。
我遇到了类似的问题,并修复了它重新上传文件.
当我在服务器上看到文件时,它是0字节的,所以我必须重新上传本地文件来解决这个问题。

x6h2sr28

x6h2sr286#

在本地计算机终端中运行命令composer dump-autoload,然后将本地计算机中供应商composer文件夹重新上载到服务器

ffx8fchx

ffx8fchx7#

THIS WORKS FOR ME -〉在您的实时服务器上执行:composer install这将安装所有缺少的必需软件包。
希望这对某人有所帮助!

相关问题