[英]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.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 的路径,里面是我的 class 日志:
namespace App\Helpers;
class Log {
...
}
在我的本地机器上,它工作正常,但在服务器上,我有一个例外。
解决方案? 将路径名从“helpers”更改为“Helpers”。
所以,注意大写;)
在上传过程中,有时会发生文件被上传但里面的内容是空白的情况。
我遇到了类似的问题并修复了它重新上传文件。
当我在服务器上看到文件时,它是 0 字节,所以我必须重新上传本地文件来解决这个问题。
在本地机器终端中运行命令composer dump-autoload
,然后将本地机器中的供应商的 composer 文件夹重新上传到您的服务器。
这对我有用 -> 在你的实时服务器上执行: composer install
这应该安装所有缺少的必要包。
希望这对某人有所帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.