繁体   English   中英

laravel class 未找到(在本地主机上工作但不在 DO 服务器上工作)

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

这是一个重复问题 - 例如: Laravel 4 次迁移 - class 未找到

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

设想

我在本地计算机上创建了一个 Laravel 4 项目 - 添加了一些类、控制器、视图等 - 该项目运行良好。

然后我将这个新的 repo 复制到我的 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.phpCompany.php读取为两个不同的文件。

因此,如果您使用Company.php文件名,那么请确保您使用与Company而不是company (较低)相同的大小写来引用该类,在 windows cC中无关紧要,但在Linux/Unix它确实是因为它的大小写敏感的性质。

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

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

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

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

git config core.ignorecase false

对于全局设置:

git config --global core.ignorecase false

我有同样的问题。

这是一个名为 app/helpers 的路径,里面是我的 class 日志:

namespace App\Helpers;

class Log {
 ...
}

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

解决方案? 将路径名从“helpers”更改为“Helpers”。

所以,注意大写;)

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

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

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

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

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

希望这对某人有所帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM